LeetCode 鍊錶 刪除鍊錶中的重複元素

2022-08-20 10:09:16 字數 1080 閱讀 8046

給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。

示例:

輸入: 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...