Когда я хочу сохранить все узлы в списке порядка 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: