LeetCode演算法題203 移除鍊錶元素解析

2021-08-31 13:29:16 字數 1282 閱讀 3769

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

示例:

輸入: 1->2->6->3->4->5->6, val = 6

輸出: 1->2->3->4->5

這個題應該是比較簡單了,但是條件還是得稍微多想想,首先如果是空鍊錶那就一定是要返回空,此外如果表頭元素是val,那就需要移動表頭直到表頭元素不為val。之後就好說了,如果當前節點的下一節點的值為val,那麼就將當前節點指向下下一節點,否則就向前移動當前節點。c++的程式是稍顯複雜的程式,python程式是優化過的程式。

c++源**:

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

return head;}}

;

python3源**:

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:def

removeelements

(self, head, val)

:"""

:type head: listnode

:type val: int

:rtype: listnode

"""if head==

none

:return

none

while head!=

none

and head.val==val:

head = head.

next

p = head

while p!=

none

and p.

next

!=none

:if p.

next

.val == val:

p.next

= p.

next

.next

else

: p = p.

next

return head

演算法題 203移除鍊錶元素

給你乙個鍊錶的頭節點 head 和乙個整數 val 請你刪除鍊錶中所有滿足 node.val val 的節點,並返回 新的頭節點 示例 1 輸入 head 1,2,6,3,4,5,6 val 6 輸出 1,2,3,4,5 示例 2 輸入 head val 1 輸出 示例 3 輸入 head 7,7,...

leetcode刷題 237題 鍊錶中元素移除

1.知道待移除的節點的上乙個節點時,只要將上乙個節點的下乙個節點指向待移除節點的下個節點即可 如下 所示 public static void deletenode listnode prenode,listnode node 2.如果不知道要刪除節點的上乙個節點,只有待刪除的節點,也就是leetc...

LeetCode刷題筆記 203 移除鍊錶元素

刪除鍊錶中等於給定值 val 的所有節點。示例 輸入 1 2 6 3 4 5 6,val 6 輸出 1 2 3 4 5 sc遞迴寫的漂亮阿 在不能比較好掌握的地方要先腳踏實地,先實現,不要怕寫的 臭 在掌握的地方時候要想著更進一步 class solution head.next removeele...