我正在努力理解为反转链表提供的解决方案。特别是,我不明白为什么我们写的最后一行:
self.head=prev
而不是
current=prev
自
current=self.head
我知道我的推理有缺陷,这就是我来这里寻求帮助的原因。提前谢谢。
class Node:
# Constructor to initialize the node object
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
# Function to initialize head
def __init__(self):
self.head = None
def reverse(self):
prev = None
current = self.head
while(current is not None):
next = current.next
current.next = prev
prev = current
current = next
self.head = prev
=
不像数学中那样相等,它是赋值/绑定运算符。
因此,在之后
current=self.head
current=prev
current
将具有prev
的值,并且self.head
将与current
无关,也不会被修改。