我正在try 用Python语言编写一个简单的函数来反转链表:
def reverse(head):
prev = None
nxt = head.next
head.next = prev
while nxt:
prev = head
head = nxt
head.next = prev
nxt = nxt.next
return head
当我仔细考虑的时候,这个逻辑似乎是正确的. 首先将prev移动到Head,然后向前移动Head,使其指向与nxt相同的 node ,然后将Head设置在它所在的位置旁边.最终将nxt向前移动一位.迭代,直到nxt到达列表的末尾.
但是,当我try 用以下代码反转链表0->;1->;2->;3->;4->;5时:
def traverse(head):
while head:
print(head.val)
head = head.next
它无休止地重复打印0和1.