刪除鍊錶中的元素

2021-08-04 18:51:44 字數 951 閱讀 9220

題目要求:刪除鍊錶中等於給定值val的所有節點。

樣例 給出鍊錶 1->2->3->3->4->5->3, 和 val = 3, 你需要返回刪除3之後的鍊錶:1->2->4->5。

思路:剛開始想著用乙個指標實現,可是老是卡在這個1->1->null這個例子這裡,輸出的結果是runtime error。後面,受啟發,我為什麼不用兩個指標來實現,乙個指標p用來存放當前的位址,乙個指標q用來存放下乙個位址。

`/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

else

q=q->next;

}if(head->val == val)//為了防止第乙個元素即為待刪除元素而出現遺漏,所以進行該判斷

head=head->next;

return head;

}};`

以上是正確的**。後面是錯誤的**

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

else

head->next=head->next->next;

}if(head->val == val)

head=head->next;

return head;

}};

提示runtime error!

分析原因:head始終是變成其後面乙個位址,因此head->next=head->next->next;表示的是存放的是其後面第3個位址,這與預想不是一致,這種思路必須得需要兩個變數存放指標才能實現。

刪除鍊錶中的元素

1 問題描述 刪除鍊錶中等於給定值val的所有節點。給出鍊錶 1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5。2 實現思路 遍歷鍊錶,若值等於val,此結點刪除,否則依次檢驗。3 definition for singly linked list.struct...

刪除鍊錶中的元素

題目 刪除鍊錶中等於給定值val的所有節點。樣例 給出鍊錶1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5。思路 通過遍歷鍊錶找出與給定值相同的結點,如果head next的值等於val,則將head next指向head next next,繼續往下遍歷,重複...

lintcode 鍊錶 刪除鍊錶中的元素

刪除鍊錶中等於給定值val的所有節點。給出鍊錶 1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5 判斷鍊錶是否為空,若是,返回null,若不是,進行下一步 判斷鍊錶第乙個結點是否為要刪除的結點,若是,將head指標向後移,若不是,無需操作 定義指標pre,判斷當...