python语句中的链表混淆

2024-04-25 22:49:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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: selfinfonone元素islinknot语句
1条回答
网友
1楼 · 发布于 2024-04-25 22:49:13

在链表中,p.next(或这里的p.link)表示下一个节点。如果我们到达了链表的末尾,那么下一个节点就是None

因此,在第一个代码片段中,每次都要检查是否有下一个节点。只有存在这样的下一个节点时,才会打印当前节点。因此,这意味着您将永远不会打印最后一个节点,因为对于最后一个节点,p.link将是None,因此while循环将停止

第二个例子并非如此。我们在这里不断迭代,直到到达列表的末尾,p现在是None

注意,前者在链表为的情况下会引发错误,因为在这种情况下p.startNone,因此没有.link属性

相关问题 更多 >

    热门问题