一种避免此问题的方法是在遍历链表时创建一个新的链表来存储需要修改的节点。然后,在遍历完整个链表后,对原始链表进行修改。
以下是一个示例代码:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 创建链表
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
# 遍历链表并修改节点值
new_head = ListNode(0)
cur = new_head
node = head
while node:
if node.val == 2:
cur.next = ListNode(4)
cur = cur.next
else:
cur.next = ListNode(node.val)
cur = cur.next
node = node.next
# 将新链表的值赋回到原链表中
head = new_head.next
在以上示例中,我们创建了一个新的链表 new_head
来存储需要修改的节点。在遍历原链表时,如果当前节点的值为 2,则将其修改为 4,并将新节点插入到 new_head
链表中。遍历完成后,将 new_head
中的节点值赋回到原链表中,即可完成链表节点的修改。
上一篇:遍历链表后输出的结果为None。
下一篇:遍历两次行并以追溯的方式更改值