鍊錶的「刪除」,往往採用的是跳過的方式,即如果p -> next是我們要「刪除」的節點,我們只要把p的next指標指向p -> next -> next就可以了,也就是讓鍊錶跳過p -> next,讓這個節點「社會性死亡」。
根據這個思路,這一題裡我們只需要遍歷鍊錶,判斷節點值是否與我們要刪除的相等,如果相等,就跳過這個鍊錶。
不過考慮到有可能鍊錶一開始就是我們要刪除的節點,所以我們需要先找到第乙個不為要刪除的值v的節點,將這個節點作為head,然後從這個節點開始遍歷到鍊錶結尾,刪除節點。
**如下:
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
while(head != null && head -> val == v)
listnode* p = head; //確定煉表頭之後,就可以開始遍歷鍊錶,根據節點的next指標判斷每個節點是否要刪除了
while(p != null) else
}return head;}};
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 ...