只知道要刪除的一個節點
怎麼做到 O(1) 的時間複雜度刪除掉它?
試試僞刪除:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}
快 get!!!
否則 得循環遍歷鏈表找到node之前的節點 再刪除它
時間複雜度 O(n);