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

2021-07-29 14:08:01 字數 660 閱讀 5167

題目:刪除排序鍊錶中的重複元素。

給定乙個排序鍊錶,刪除所有重複的元素每個元素只留下乙個。

樣例:給出1->1->2->null,返回1->2->null

給出1->1->2->3->3->null,返回1->2->3->null

思路:該題所給的鍊錶是有序的鍊錶,這大大降低了該題的難度,所以只要再定義乙個指標p,固定head,移動p,看p的值是否與head的值相等即可,如果p的值與head的值不相等,則說明此時head與p之間的元素都是相同的,所以要將head->next的位置移動到p,再分別將head和p移動到p原來的位置和p->next的位置。重複上面的步驟,知道鍊錶的盡頭。

具體實現**:

/*** definition of listnode

* class listnode

* }*/

class solution

else

}head->next=null;

return node;}}

}; 感想:

雖然這道題的思路很明確,但是有很多細節需要注意。比如,鍊錶為空時,直接返回鍊錶。還有就是在p指向為空時,說明鍊錶中重複的元素已經刪除乾淨,需要將head->next指向空。

刪除排序鍊錶中重複元素

示例 1 輸入 1 2 3 3 4 4 5 輸出 1 2 5 示例 2 輸入 1 1 1 2 3 輸出 2 3 照例使用三個指標來 struct listnode deleteduplicates struct listnode head else 沒有重複的就正常移動 示例 1 輸入 1 1 2 ...

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

給定乙個排序鍊錶,刪除所有重複的元素每個元素只留下乙個。樣例 給出 1 1 2 null,返回 1 2 null 給出 1 1 2 3 3 null,返回 1 2 3 null 加乙個頭結點 鍊錶有序,找到不相等的時候,刪除中間結點 兩兩比較是否相同進行刪除 definition for listn...

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

問題描述 給定乙個排序鍊錶,刪除所有重複的元素每個元素只留下乙個。樣例 給出 1 1 2 null,返回 1 2 null 給出 1 1 2 3 3 null,返回 1 2 3 null 實現思路 為了實現操作,我設定了兩個指標變數p和q,讓p指向開始結點,讓q指向第二個結點,即這兩個指標一前一後分...