【发布时间】:2022-11-26 12:21:45
【问题描述】:
最近开始练习在Python中使用LinkedList,遇到了下面的问题。两个代码似乎都在做同样的事情,但是 1 得到了错误,而另一个没有。有人可以告诉我为什么会这样吗?:
`#Python Linked List
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
Assume we have linkedlist node = ListNode{val: 2, next: ListNode{val: 4, next: ListNode{val: 3, next: None}}}
#Code 1: (This can run fine)
while node:
print(node.val) # access the values of the node by node.val
node=node.next`
#Code 2: (This gives me an error saying 'NoneType' object has no attribute 'val')
node = node.next
print(node.val)
我希望看到代码 2 没有给我错误,但即使有错误,代码 2 仍然可以打印正确的值。
【问题讨论】:
-
这是因为您已将属性“next”的默认值设置为 None。
-
目前尚不清楚这些是否真的一个接一个地运行,或者您是否通常独立运行它们但只是将它们粘贴在一起以解决问题。
-
您希望代码 2 打印的“正确值”具体是什么?
-
是的,对此感到抱歉。假设已经定义了节点,我添加了一些定义节点值的行。
标签: python linked-list