給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。
示例:
輸入: 1->1->2->3->3
輸出: 1->2->3
雙指標法。從煉表頭開始構造一快一慢兩個指標:slow和fast,fast先移動,當遇到和slow元素值不同的節點時停下來,然後將slow指向fast並對slow和fast進行更新。**如下:
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
listnode* slow = head;
listnode* fast = head->next;
while(fast!=nullptr)
slow->next = fast;
slow = fast;
if(fast!=nullptr)
}return head;
}};
更簡潔的寫法:/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
slow->next = fast;
slow = fast;
}return head;
}};
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
listnode* curnode = head;
while(curnode!=nullptr && curnode->next!=nullptr)else
}return head;
}};
LeetCode 刪除鍊錶中的節點
請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點,你將只被給定要求被刪除的節點。現有乙個鍊錶 head 4,5,1,9 它可以表示為 4 5 1 9示例 1 輸入 head 4,5,1,9 node 5輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該...
鍊錶 LeetCode19刪除鍊錶中的第N個節點
給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?分析 看到這個問題,第一反應,先求長度,再找節點,看一下高階,有...
leetcode 鍊錶 回文鍊錶
請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?head null 空鍊錶,回文,返回true head.next null 只有乙個節點的列表,回文,返回tru...