LeetCode 203 移除鍊錶元素

2021-10-25 15:57:50 字數 804 閱讀 4015

刪除鍊錶中等於給定值 val 的所有節點。

輸入: 1->2->6->3->4->5->6, val = 6

輸出: 1->2->3->4->5

主要思路就是把當前節點的前繼節點存其來,遇到和val相同的就可以給前繼節點的next當前節點的next,這樣就可以刪除了,但是有連續的就有點麻煩了,所以用哨兵法來解決這個問題非常方便。

先new乙個哨兵初始化為0並讓該哨兵的next指向head。

當前節點為head,前繼就是哨兵。

直到當前節點不為空為止:

(1) 如果當前節點的val等於要刪除的值,那麼該結點的前繼就是該結點的next。要刪除的節點存在todelete裡。

(2)當前節點跳到下乙個節點

(3)如果todelete不為空,那麼刪除todelete,並初始化為nullptr。

迴圈結束後返回哨兵的next即可。

/**

* definition for singly-linked list.

* struct listnode

* listnode(int x) : val(x), next(nullptr) {}

* listnode(int x, listnode *next) : val(x), next(next) {}

* };

*/class solution else

curr = curr->next;

if (todelete)

}return sentinel->next;

}};

LeetCode 203 移除鍊錶元素

刪除鍊錶中等於給定值val的所有節點。示例 輸入 1 2 6 3 4 5 6,val 6輸出 1 2 3 4 5建立初始節點dummy和cur,cur等於dummy。再建立節點point等於head。然後point不為空時進入迴圈,如果point val等於val,那麼將point向後移動一步 如果...

LeetCode 203 移除鍊錶元素

題目 刪除鍊錶中等於給定值 val 的所有節點。示例 輸入 1 2 6 3 4 5 6,val 6 輸出 1 2 3 4 5 筆記解析 刷題就 是個踩坑的過程,閃一下子卻很舒服,因為會有成長 坑點 1 注意有多個要刪除的節點鏈結 例子 1,2,6,6,6,3,4 解法 將三種類別分開討論,只要是cu...

leetcode 203 移除鍊錶元素

解題思路 方法一 1.新建乙個節點,遍歷鍊錶,如果值相等,連線到下乙個節點,原指標下移.public static listnode removeelements listnode head,int val listnode heada head listnode cur new listnode ...