移除鍊錶元素 雙指標法 C

2021-10-07 05:29:56 字數 551 閱讀 1800

思路:

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...