iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
佛心分享-刷題不只是刷題

圖解LeetCode(入門篇)系列 第 16

圖解LeetCode(入門篇): 83. Remove Duplicates from Sorted List

  • 分享至 

  • xImage
  •  

83. Remove Duplicates from Sorted List

题目描述:

給定一個已排序的Linked List,刪除所有重複的元素,使每個元素只出現一次。

解題思路:
這道題是一道實作題,主要考驗讀者是否熟悉 Linked List 的操作。由於這個 Linked List 是已經排序好的,我們可以從頭開始遍歷,逐個比較當前節點和下一個節點的值。如果它們相同,我們就跳過下一個節點,把它從鏈表中刪除,然後繼續比較剩下的節點。這樣,直到我們處理完所有的節點為止。最後,我們返回鏈表的頭節點 head。這個方法可以有效地刪除所有重複的元素,確保每個元素只出現一次。
https://ithelp.ithome.com.tw/upload/images/20240825/20168306UkHGfhNNXk.jpg

var deleteDuplicates = function(head) {
    let current = head;

    while (current && current.next) {
        if (current.val === current.next.val) {
            current.next = current.next.next;
        } else {
            current = current.next;
        }
    }

    return head;
};

時間複雜度:O(n),其中 n 是鏈表中節點的數量。我們只需遍歷一次鏈表即可。
空間複雜度:O(1),只使用了常數級別的額外空間。

總結:
這道題目可以歸類為「Linked List」。Linked List 類型的題目在 LeetCode 中占有很大比例,隨著題目難度的增加,這類問題會變得越來越複雜。因此,建議讀者按照 LeetCode 的題目順序,從簡單的開始,一步一步來解答這些問題,逐步掌握 Linked List 的各種操作和應用。


上一篇
圖解LeetCode(入門篇): 70. Climbing Stairs
下一篇
圖解LeetCode(入門篇): 88. Merge Sorted Array
系列文
圖解LeetCode(入門篇)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言