📅  最后修改于: 2023-12-03 15:11:15.848000             🧑  作者: Mango
链表是一种常见的数据结构,在Python中它可以容易地通过类来实现。删除链表中的节点也是常见的操作,本文将介绍如何用Python编写一个简单的程序来删除链表中的节点。
我们可以使用两个指针来遍历链表,一个指针p指向要删除的节点,另一个指针q指向p的前一个节点。
具体实现步骤如下:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def deleteNode(head: ListNode, val: int) -> ListNode:
if not head:
return head
if head.val == val:
return head.next
prev = None
curr = head
while curr and curr.val != val:
prev = curr
curr = curr.next
if not curr:
return head
prev.next = curr.next
return head
如下面示例代码所示,我们可以将一个列表转换成一个链表,然后删除其中的一个节点并打印删除后的链表。
if __name__ == '__main__':
# 将一个列表转换成链表
nodes = [1, 2, 3, 4, 5]
head = ListNode(nodes[0])
last = head
for val in nodes[1:]:
last.next = ListNode(val)
last = last.next
# 删除链表中的一个节点
new_head = deleteNode(head, 3)
# 打印删除后的链表
curr = new_head
while curr:
print(curr.val, end=' ')
curr = curr.next
输出结果如下:
1 2 4 5
使用Python实现链表的操作十分简单,通过定义一个链表节点类,我们可以轻松地实现链表增、删、改、查等操作。本文介绍了如何实现删除链表节点的操作,并给出了完整的Python代码示例。