Remove Duplicates from Sorted List

fakestandard

FakeStandard

Posted on October 25, 2022

Remove Duplicates from Sorted List

#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]
Enter fullscreen mode Exit fullscreen mode

Example 2

Input: head = [1,1,2,3,3]
Output: [1,2,3]
Enter fullscreen mode Exit fullscreen mode

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;
}
Enter fullscreen mode Exit fullscreen mode

Reference

LeetCode Solution

GitHub Repository


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 ⭐ I'd appreciate it.


💖 💪 🙅 🚩
fakestandard
FakeStandard

Posted on October 25, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Remove Duplicates from Sorted List
algorithms Remove Duplicates from Sorted List

October 25, 2022

Plus One
algorithms Plus One

October 19, 2022

Length of Last Word
algorithms Length of Last Word

October 18, 2022

Search Insert Position
algorithms Search Insert Position

October 13, 2022

Remove Element
algorithms Remove Element

October 11, 2022