力扣(LeetCode)移除鍊錶元素 個人題解

2022-09-03 09:30:08 字數 569 閱讀 2420

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

這題粗看並不困難,鍊錶的特性讓移除元素特別輕鬆,只用遇到和val相同的就跳過,將指標指向下乙個,以此類推。

但是,乙個比較麻煩的問題是,當鍊表所有元素都和val相同時,如果直接使用引數給的head,則返回的一定會保留第一位的節點,而題意是要返回空值。

對上述情況使用特判又會與「第乙個節點的值和val不同,第二個節點之後和val值相同」相矛盾。

所以想到的思路是,新建乙個節點,將這個節點接在head的最前面,保證第乙個節點無意義,這樣,哪怕遇到上述情況,返回cur.next也是null。

這裡回憶起之前專業課老師課上說過的內容,鍊錶的第乙個節點一般都放空值,現在知道這種約定俗成的規則是有哪些 坑 在裡面了。

**如下:

1

class

solution

14else

15 head=head.next;16}

17return

ret.next;

1819

}20 }

力扣 203 移除鍊錶元素

一開始想太簡單了沒有考慮到已經遍歷到的結點無法刪除 看了答案區大佬的 有三種方法 1.在原表基礎上刪除 要定義指向當前結點前一結點的指標 definition for singly linked list.struct listnode class solution else if p next n...

力扣(LeetCode) 27移除元素

給你乙個陣列 nums 和乙個值 val,你需要 原地 移除所有數值等於 val 的元素,並返回移除後陣列的新長度。不要使用額外的陣列空間,你必須僅使用 o 1 額外空間並 原地 修改輸入陣列。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 va...

力扣(LeetCode)移除元素 個人題解

給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 ...