題目:
給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。
返回刪除後的鍊錶的頭節點。
思路:
刪除節點a==讓節點a的上乙個節點 指向節點a的下乙個節點
考慮到要刪除的節點可能是頭節點,我們新建乙個listnode節點beforehead,beforehead.next指向頭節點head,以防找不到頭節點。
**:
# 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:
p=beforehead=listnode(0)
#新建結點beforehead,p是遍歷指標
beforehead.
next
=head
while p:
if p.
next
.val==val:
#p.next結點就是要刪除的結點
p.next
=p.next
.next
#讓p的下乙個指標,跳過p.next,直接指向p.next.next,實現刪除結點的效果
return beforehead.
next
#返回頭結點
else
:#如果當前結點非 要刪除結點,繼續遍歷
p=p.
next
鍊錶 刪除鍊錶的節點
劍指offer的乙個題,題目是要求在最少的時間內刪除鍊錶的節點。問題分析 對於鍊錶的刪除,按照劍指offer的一貫思路就是展開討論 1 空鍊錶咋辦 待刪除的節點是空節點咋辦 2 要刪除的節點在鍊錶中的位置有三種情況 1 鍊錶只有乙個節點,待刪除節點是表頭又是尾節點 2 鍊錶有多個節點,待刪除的節點是...
Day1 鍊錶中倒數第k個節點 鍊錶
題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個節點是值為4的節點。思路 建立兩個指標p1,p2。初始位置均在頭節點處。p1先走...
刪除鍊錶的節點 鍊錶操作
給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。注意 此題對比原題有改動 示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.示例 2 輸入...