[当我想将所有节点保存到顺序列表sorted_node_val
中时,我使用while语句。
def closestKValues(self, root, target, k):
# write your code here
stack = []
sorted_node_val = []
node = root
while node:
stack.append(node)
node = node.left
while stack is not None:
node = stack.pop()
sorted_node_val.append(node.val)
if node.right:
node = node.right
while node:
stack.append(node)
node = node.left
但是上面的代码产生错误while stack is not None:
,结果是
File "/Users/Python/901.py", line 35, in closestKValues
node = stack.pop()
IndexError: pop from empty list
我将while语句更改为while stack:
,并修复了此错误。但我想知道while stack is not None:
和while stack:
在堆栈的最后,stack = []
。这是长度为0的列表,而不是none对象。您可以通过尝试None == []
(将为False
)进行验证。