Python の単一にリンクされたリストからノードを削除の方法
ノードを削除するには、その前のノードを見つけ、その次のポインターを削除するノードの次のノードに設定する必要があります。
以下は、単一連結リスト内のノードを削除する方法を示すサンプルコードです。
# 定义节点类
class ListNode:
def __init__(self, data):
self.data = data
self.next = None
# 定义单链表类
class LinkedList:
def __init__(self):
self.head = None
# 在链表尾部插入节点
def append(self, data):
new_node = ListNode(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
# 删除指定节点
def delete(self, data):
if self.head is None:
return
# 如果要删除的节点是头节点
if self.head.data == data:
self.head = self.head.next
return
current = self.head
while current.next:
if current.next.data == data:
current.next = current.next.next
return
current = current.next
# 打印链表
def print_list(self):
current = self.head
while current:
print(current.data, end=" ")
current = current.next
print()
# 创建一个链表对象
llist = LinkedList()
# 在链表中插入节点
llist.append(1)
llist.append(2)
llist.append(3)
llist.append(4)
llist.append(5)
# 打印原始链表
print("原始链表:")
llist.print_list()
# 删除节点 3
llist.delete(3)
# 打印删除节点后的链表
print("删除节点后的链表:")
llist.print_list()
上記のコードを実行すると、以下が出力されます。
原始链表:
1 2 3 4 5
删除节点后的链表:
1 2 4 5
どうやらノード3は正常に削除されました。