我需要为我实现的链表执行一个insert to head操作。但是,通过函数调用(如insertToHead)执行此操作并在需要的地方显式编写语句会产生不同的结果。我想知道Python的哪一个属性导致了这种差异,但我无法理解
更具体地说,假设我有以下链接列表类:
class Node:
value = None
nextNode = None
def __init__(self, value):
self.value = value
def insertToHead(self, value):
newHead = Node(value)
newHead.nextNode = self
return newHead
对于具有单个元素(例如,2)的链表,我希望在头部插入一个节点(例如,0),以使链表0->;2.
我用以下方法创建了链表
head = Node(2)
然后我尝试通过两种方式将0插入头部:
newHead = Node(0)
newHead.next = head
head = newHead
现在head
是0,而不是0->;2.
insertToHead
head = head.insertToHead(0)
head
是0->;2在本声明之后
有人知道为什么这两种方法的结果不同吗
单链表的简单实现:
你打错了
newHead.next
应该是newHead.nextNode
相关问题 更多 >
编程相关推荐