給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。
返回刪除後的鍊錶的頭節點。
注意:此題對比原題有改動
輸入: head =[4
,5,1
,9], val =
5輸出:[4
,1,9
]解釋: 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4
->1-
>
9.
輸入: head =[4
,5,1
,9], val =
1輸出:[4
,5,9
]解釋: 給定你鍊錶中值為 1 的第三個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4
->5-
>
9.
說明:
加乙個虛擬頭結點,再從頭遍歷找到目標節點刪掉即可。
# definition for singly-linked list.
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class
solution
:def
deletenode
(self, head: listnode, val:
int)
-> listnode:
dummy = listnode(0)
dummy.
next
= head
p = dummy
while p.
next
.val != val:
p = p.
next
p.next
= p.
next
.next
return dummy.
next
LeetCode 面試題18 刪除鍊錶的節點
給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。注意 此題對比原題有改動 示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.示例 2 輸入...
面試題18 刪除鍊錶的節點
給定單向鍊錶的頭指標和乙個要刪除的節點指標,定義乙個函式刪除該節點。思路 使用o 1 的方法來解決,將要刪除的的節點用下乙個節點來覆蓋就相當於是刪除了原節點。但有兩種特殊情況需要考慮,但鍊錶只有頭節點,即鍊錶只有乙個節點。二刪除的節點是尾節點,只用從頭for一遍 class listnode pub...
面試題18 刪除鍊錶的結點
題目1 在o 1 的時間內刪除鍊錶結點 給定單項鍊表的頭指標和乙個結點指標,定義乙個函式在o 1 的時間內刪除該結點。分析 要在o 1 的時間內刪除結點,按照常規的找到刪除結點的上乙個結點,然後刪除該結點的思路肯定行不通。但是我們可以將待刪除的結點的下乙個結點的值賦給待刪除結點,然後刪除下乙個結點,...