我正在用python实现链表,我遇到了两个语句,现在很困惑
显示元素时
我用了一句话
p=self.start
While p.link is not None:
Print p.info
p=p.link
比如在我的名单上如果有1 2 3 4 5那么
它只印了1 2 3 4 5
但如果我用
While p is not None:
Print p.info
p=p.link
它正在打印我想要的12 3 4 5
那么这两者有什么区别呢
当p.link不是None时:当p不是None时:
Tags:
在链表中,
p.next
(或这里的p.link
)表示下一个节点。如果我们到达了链表的末尾,那么下一个节点就是None
因此,在第一个代码片段中,每次都要检查是否有下一个节点。只有存在这样的下一个节点时,才会打印当前节点。因此,这意味着您将永远不会打印最后一个节点,因为对于最后一个节点,
p.link
将是None
,因此while
循环将停止第二个例子并非如此。我们在这里不断迭代,直到到达列表的末尾,
p
现在是None
注意,前者在链表为空的情况下会引发错误,因为在这种情况下
p.start
是None
,因此没有.link
属性相关问题 更多 >
编程相关推荐