思路:
1.判斷head是否為空,若空返回null or nullptr。(鍊錶問題常用)
2.pre和cur分別指向第乙個節點和第二個節點。
3.cur判斷是否相等,若相等,一直刪下去;若不相等,兩個節點同時以相同速度往尾部方向移動。跳出迴圈。
4.這時,相當於除了第乙個節點沒被判斷外,鍊錶其他節點都進行了判斷。所以只需要再次判斷第乙個節點是否與給定值相等,若相等,頭指標後移動,若不相等,直接返回head;
**
// code
struct listnode};
class
solution
pre = head;
cur = head-
>next;
while
(cur !=
null
)else}if
(head-
>val == val)
return head;}}
;
陣列 27 移除元素(雙指標法)
移除元素 給你乙個陣列 nums 和乙個值 val,你需要 原地 移除所有數值等於 val 的元素,並返回移除後陣列的新長度。不要使用額外的陣列空間,你必須僅使用 o 1 額外空間並 原地 修改輸入陣列。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2...
(陣列 雙指標法)移除陣列中給定元素
27.移除元素 難度簡單653 給你乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,並返回移除後陣列的新長度。不要使用額外的陣列空間,你必須僅使用 o 1 額外空間並原地 修改輸入陣列。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nu...
雙指標 移除元素
題目描述 給你乙個陣列 nums 和乙個值 val,你需要 原地 移除所有數值等於 val 的元素,並返回移除後陣列的新長度。不要使用額外的陣列空間,你必須僅使用 o 1 額外空間並原地修改輸入陣列。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。方法一 時間複雜度o n 2 class...