82 刪除排序鍊錶中重複元素

2021-10-18 02:41:42 字數 859 閱讀 9206

題目:

給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。

示例 1:

輸入: 1->2->3->3->4->4->5

輸出: 1->2->5

示例 2:

輸入: 1->1->1->2->3

輸出: 2->3

思路:採用三個指標。slow指標指向第乙個重複節點,fast指向最後乙個重複節點,temp指向第乙個重複節點的前乙個節點。如果fast節點值等於slow節點值,fast向前遞進,slow不變,直到fast節點的值不等於slow節點的值。此時,令temp->next=fast即可。

c++實現如下:

/**

* definition for singly-linked list.

* struct listnode

* listnode(int x) : val(x), next(nullptr) {}

* listnode(int x, listnode *next) : val(x), next(next) {}

* };

*/class solution

slow=fast;

if(fast==null)

else

}else

}return dummyhead->next;

}};

82 刪除排序鍊錶中的重複元素 II

給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。示例 1 輸入 1 2 3 3 4 4 5 輸出 1 2 5 示例 2 輸入 1 1 1 2 3 輸出 2 3 題解 建立乙個頭結點,這樣可以保證第乙個結點能簡單的移除掉 listnode l 為操作結點的前一結點...

82 刪除排序鍊錶中的重複元素 II

給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。示例 1 輸入 1 2 3 3 4 4 5 輸出 1 2 5 示例 2 輸入 1 1 1 2 3 輸出 2 3 自己的思路很簡單,那就是雙指標法,pre指向下乙個最後乙個不重複的節點。而cur去搜尋重複節點,當找到...

82 刪除排序鍊錶中的重複元素 II

細節分析 1.按照慣例,設定乙個空的頭節點,用於返回,接著用乙個指標儲存結果 res res head listnode none return res head 2.再設定乙個空的頭節點指標,用於遍歷鍊錶 point listnode none point.next head 3.所以 res用於...