刪除鍊錶中重複的結點

2021-08-17 03:56:31 字數 595 閱讀 4372

時間限制:1秒

空間限制:32768k

熱度指數:123981

本題知識點: 

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

/*

struct listnode

};*/

class solution

if (p->next != q)

else

}return head->next;

}};

設定乙個頭結點,頭結點並不是真正的煉表頭結點,而是指向鍊錶的第乙個元素的指標,p為移動的鍊錶尾結點,q為原鍊錶的遍歷結點。

1、若煉表為空或者只有乙個元素,直接返回原鍊錶。

2、q遍歷結點時,若有重複值就直接跳過。此時有兩種情況,一種是q即為p的後乙個結點,p和q之間沒有需要刪除的結點,這種情況下兩個元素分別後移就可以。第二種情況就是p和q之間有重複的元素,此時p並不後移,而是q後移(跳過所有的重複的元素,但是q後面的元素也有可能有重複值,所以並不能將p後移),但是p和q相連線。

刪除鍊錶中重複的結點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶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...