( )56 刪除鍊錶中重複的結點

2021-09-24 18:32:20 字數 963 閱讀 4344

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5。

leetcode對應題目:

83. 刪除排序鍊錶中的重複元素(重複的節點保留乙個)                  題目解答

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

題目解答

總結:要建立乙個新的節點來做,否則可能頭結點都要刪除呢。還是乙個三指標的思想。只不過注意,只要是訪問指標的時候跨越了判定的範圍,就要再次判斷是否為空。比如這裡只判斷cur不為空,但是你要去用cur->next->val的時候就要多留意。

class solution 

if(pre->next == cur)

else

}return dummy->next;

}};

203.移除鍊錶元素

如果要在鍊錶中刪除乙個元素,最好的做法就是建立乙個dummy結點,把它連線到原來鍊錶的首部,這樣就不需要做很多分支判斷:比如,如果要刪除的是頭結點?要刪除的是尾結點?比如上題目的要刪除的重複元素就是頭結點?

如果刪除的元素不在鍊錶中?這時候可以設定乙個全域性變數is_in_list == false;,當進行刪除那部分**執行的時候可以is_in_list == ture;

bool delete_the_node = false;

class solution

pre->next = cur->next;

cur =pre->next;

delete_the_node = true;

}else

}return dummy->next;

}};

56 刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 方法一 遞迴 public class listnode public class solution if phead.val phead.ne...

JZ56 刪除鍊錶中重複的結點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 題解 1 需要乙個前置結點,用作刪除結點後連線之後的結點。2 遍歷結點,如果當前節點重複就一直往下走,直至走到不重複的結點,讓前置結點...

JZ56 刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 建立兩個鍊錶list1list2。list1指向不確定重不重複的結點。list2指向一直去和下乙個結點判斷的鍊錶 首先,需要對原鍊錶phead進...