55刪除鍊錶中重複的結點

2022-07-29 02:39:16 字數 982 閱讀 1510

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

思路:這題首先熟悉哨兵節點的用法。自己對模板還是沒有很好的節點。

//

哨兵節點

listnode dummynode(-1

);dummynode.next =head;

head = &dummynode;

/*理解:這樣寫的好處可以自動**多餘的這個節點,因為是乙個物件,所以使用乙個.運算子。接下來的head是乙個指標,所以需要取dummynode的位址。

第二行將哨兵節點的next指向當前head,然後將head移動到哨兵節點,這樣做的好處是,可以修改之後結點的指向,如果沒有這句,那麼處理的時候會寫

head = head -> next,這樣只能移動指標,不能改變指標的指向。

*/

考慮問題要思考:

先分情況,當前節點和next節點相等的時候,儲存當前節點值,只要和當前節點值一樣就一直往下next,如果不相等就直接轉移到下一節點。

相似題目:remove duplicates from sorted list

/*

struct listnode

};*/

class

solution

listnode* head =phead;

listnode dummynode(-1

); dummynode.next =head;

head = &dummynode;

while(head->next != nullptr&& head->next->next !=nullptr)

}else

}

return

dummynode.next;

}};

刪除鍊錶中重複的結點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5。刪除鍊錶中重複的結點 author 過路的守望 public class duplicationnode 新建乙個節點指向頭結點 li...

刪除鍊錶中重複的結點

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

刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 題目分析 刪除鍊錶中的結點要比較當前結點是否與前面結點和後面結點相同,只有兩個都不同的結點才保留。用pre儲存前乙個節點,cur儲存當前結點,c...