移除鍊錶元素 刪除所有val的節點

2021-09-19 16:54:44 字數 757 閱讀 9078

如圖我們要刪除值為val的所有元素

我的思路:

1.出於空間複雜度的考慮我們這只例項化乙個節點node用來當作刪除後鍊錶的頭節點

2.我們用node1=node記錄頭節點

3.當head!=null時我們判斷head.val==vall如果是true 則使node.next=head.next

4.否則(else)我們使node.next=head,node=node.next

5.相信大家肯定有疑惑為什麼只在else裡node=node.next這是因為都這樣會把重複的節點拿來而且會莫名的進入死迴圈不信大家可以試試

這裡會比較繞但是想清楚了就可以了

6.最後head=head.next;

上**:

class

solution

listnode node=

newlistnode

(100);

//例項化乙個頭節點用來記錄新鍊錶

listnode node1=node;

//記錄弄node

while

(head!=null)

else

head=head.next;

//下乙個節點

}return node1.next;

//返回新鍊錶

}

刪除鍊錶指定val值的所有元素

刪除鍊錶中等於給定值 val 的所有節點。題目源於領扣 輸入 1 2 6 3 4 5 6,val 6 輸出 1 2 3 4 5 分析 刪除元素過程 以c 為例 如圖 注意 當刪除的節點就是頭結點時,新的頭結點 即cur next 就是null,滿足刪除指定val的所有元素的條件。當判斷完結點是否為頭...

資料結構 移除鍊錶中值為val的元素

刪除鍊錶中等於給定值 val 的所有節點。示例 輸入 1 2 6 3 4 5 6,val 6 輸出 1 2 3 4 5 struct listnode 思路 定義兩個指標 比如ppre,pcur 讓ppre指向頭結點,讓pcur指向頭的下乙個結點,然後一起向前走,找值為val的節點。找到後更新ppr...

刪除鍊錶中所有值為val的節點

題目描述 問題 1 2 3 4 val 2 要求輸出為 1 3 4 解題思路 1 遍歷一遍鍊錶,對比每個節點,刪除值為val的節點 2 需要注意的點 一般來說遍歷都是從頭開始,但是在這種沒有頭節點的鍊錶中勢必要考慮若第乙個節點就為所要刪除的節點時該如何解決 if head return head w...