#83.Remove Duplicates from Sorted List
Problem statement
Given the head
of a sorted linked list, delete all duplicates such that each element appears only once. Return the linked list sorted as well.
Example 1
Input: head = [1,1,2]
Output: [1,2]
Example 2
Input: head = [1,1,2,3,3]
Output: [1,2,3]
Explanation
給定一個從頭開始的已排序鏈結串列,刪除串列裡重複的元素,使每個元素只出現一次,最終返回一個排序好的鏈結串列
Solution
熟悉鏈結串列的話這題不難,刪除重複值的方法是略過下個節點,將節點與下下個節點連接起來,特別注意的地方是要如何知道該節點是重複值,用變數紀錄嗎?還是有其他方法?
我從題目知道該串列是已經排序過,故將當前的節點值與下一個節點值比對是否相同,如果相同就用前面提到的刪除方式,略過下一個節點,將當前節點與下下節點連結起來;若不相同則將指標位置移動到下一個節點,重複以上步驟直到下一個節點指標為 null 為止
public ListNode DeleteDuplicates(ListNode head)
{
if (head != null)
{
var curr = head;
while (curr != null && curr.next != null)
{
if (curr.val == curr.next.val)
curr.next = curr.next.next;
else
curr = curr.next;
}
}
return head;
}
Reference
Thanks for reading the article 🌷 🌻 🌼
If you like it, please don't hesitate to click heart button ❤️
or click like on my Leetcode solution
or follow my GitHub ⭐
or buy me a coffee ⬇️ I'd appreciate it.
Top comments (0)