雜湊表儲存出現過的節點值,如果當前節點出現過,就刪掉。(效率還是要高很多)
const
removeduplicatenodes
=(head)
=>
const
set=
newset()
;set
.add
(head.val)
;let prev = head;
// head是存在的,賦給prev
let cur = head.next;
// head是存在的,它的next賦給cur
while
(cur)
else
}return head;
// 返回刪除重複節點後的鍊錶
};
那就是雙指標:
但是時間複雜度是o(n)的
const
removeduplicatenodes
=(head)
=>
else
} p = p.next;
}return head;
};
面試題 02 01 移除重複節點
面試題 02.01.移除重複節點 使用set或者hash表,頭插法 本來想使用暴力的,但是暴力可以優化 氣泡排序的思想 漸漸擴大不重複的區域 definition for singly linked list.public class listnode class solution listnode...
面試題 02 01 移除重複節點
編寫 移除未排序鍊錶中的重複節點。保留最開始出現的節點。示例1 輸入 1,2,3,3,2,1 輸出 1,2,3 示例2 輸入 1,1,1,1,2 輸出 1,2 鍊錶長度在 0,20000 範圍內。鍊錶元素在 0,20000 範圍內。高階 如果不得使用臨時緩衝區,該怎麼解決?對給定的鍊錶進行一次遍歷,...
面試題 02 01 移除重複節點
編寫 移除未排序鍊錶中的重複節點。保留最開始出現的節點 可以使用hash表來儲存鍊錶的值,遍歷鍊錶時檢視hash表裡面是否存在該值即可。definition for singly linked list.struct listnode class solution unordered set int...