1 10給定特定節點指標要求刪除該節點

2022-07-13 16:48:12 字數 1863 閱讀 1179

假設給定鍊錶 1->2->3->4->5->6->7 中指向第5個元素的指標,要求把結點5刪掉,刪除後鍊錶變為1->2->3->4->6->7

1.如果這個結點是鍊錶的最後乙個結點,那麼無法刪除這個結點。

2.如果這個結點不是鍊錶的最後乙個結點,可以通過把其後繼結點的資料複製到當前結點中,然後刪除後繼結點的方法來實現。

# -*-coding:utf-8-*- 

"""@author : 圖南

@software: pycharm

@time : 2019/9/7 19:46

"""class node:

def __init__(self, data=none, next=none):

self.data = data

self.next = next

def printlink(head):

if head is none or head.next is none:

return

cur = head.next

while cur != none:

print(cur.data, end=" ")

cur = cur.next

print()

def conlink(nums, n):

nums = list(map(int, nums.split(' ')))

n = int(n)

if len(nums) == 0 or n == 0:

return

p = none

head = node()

cur = head

for i in range(1, len(nums)+1):

node = node(nums[i-1])

cur.next = node

cur = node

if i == n:

p = cur

return head, p

def deletep(p):

if p.next is none:

return false

p.data = p.next.data

p.next = p.next.next

return true

if __name__ == '__main__':

nums = input('鍊錶:')

n = input('節點數:')

head, p = conlink(nums, n)

print('刪除前:')

printlink(head)

f = deletep(p)

if f:

print('刪除後:')

printlink(head)

else:

print('無法刪除!')

首先分配乙個新結點q,把結點q插入到結點p後,然後把p的資料域複製到結點q的資料域中,最後把結點p的資料域設定為待插入的值。

# 給定節點p在p前插入乙個節點

1325 刪除給定值的葉子節點

給你一棵以 root 為根的二叉樹和乙個整數 target 請你刪除所有值為 target 的 葉子節點 注意,一旦刪除值為 target 的葉子節點,它的父節點就可能變成葉子節點 如果新葉子節點的值恰好也是 target 那麼這個節點也應該被刪除。也就是說,你需要重複此過程直到不能繼續刪除。def...

刪除單鏈表的給定節點(非末尾)

此刪除法,只給了需要刪除的那個節點!請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點,你將只被給定要求被刪除的節點。示例 1 輸入 head 4,5,1,9 node 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.示例 ...

18 刪除鍊錶中的給定節點

package sort public class test13 public static listnode deletenode listnode head,listnode tobedeleted 如果刪除的是頭結點,直接返回頭結點的下乙個結點 if head tobedeleted 下面的情...