AcWing 29 刪除鍊錶中重複的節點

2021-09-22 02:11:38 字數 811 閱讀 4034

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留。

樣例1

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

輸出:1->2->5

樣例2

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

輸出:2->3

先建立乙個dummy節點,然後cur等於dummy節點,pre節點等於head。然後先判斷是否head的next節點為空或者head節點的值與其next節點的值不同,如果是,那麼cur的next節點置為head節點,並讓cur等於cur->next;如果不是,則保持cur不動。然後開始while迴圈,如果pre的next節點不為空,那麼進入迴圈,判斷是否pre的val和pre->next的val相同,如果相同則讓pre往後走一步;如果不相同,則把pre往後走一步,並判斷是否pre的next節點為空或者head節點的值與其next節點的值不同,如果是,那麼cur的next節點置為pre節點,並讓cur等於cur->next;如果不是,則保持cur不動。當pre的next為空時,退出迴圈。然後將cur的next置為null。然後返回dummy->next。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

while(pre->next != null)}}

cur->next = null;

return dummy->next;

}};

AcWing 29 刪除鍊錶中重複的節點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留。樣例1輸入 1 2 3 3 4 4 5 輸出 1 2 5樣例2 輸入 1 1 1 2 3 輸出 2 3分析 本題與一般去重不同之處是 對於重複的元素,乙個不留。於是很可能刪除後,鍊錶為空。為了防止頭結點被刪,我...

刪除重複鍊錶

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

鍊錶 刪除鍊錶中重複的節點

刪除鍊錶中重複的節點 方法一 採用遞迴的方法,但這種方法在鍊錶無重複節點時效率不高 function deleteduplication phead if phead.val phead.next.val return deleteduplication node 採用遞迴的方法從下乙個不重複的點開...