python我试图迭代地执行树的有序遍历,但我将进入一个无限循环
在下面的解决方案类中,我有一个按序遍历(左、根、右)的实现 出于某种原因,我进入了一个infinte循环,我想知道这是否是因为python处理连续if/else语句的方式python我试图迭代地执行树的有序遍历,但我将进入一个无限循环,python,python-3.x,binary-search-tree,inorder,Python,Python 3.x,Binary Search Tree,Inorder,在下面的解决方案类中,我有一个按序遍历(左、根、右)的实现 出于某种原因,我进入了一个infinte循环,我想知道这是否是因为python处理连续if/else语句的方式 # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right =
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = righ
class Solution:
def inorderTraversal(self, root: TreeNode) -> List[int]:
out = []
stack = []
if root is None:
return out
else:
stack.append(root)
while stack != []:
temp = stack.pop()
if temp.right:
stack.append(temp.right)
if temp.left:
a = temp.left
stack.append(temp)
stack.append(a)
else:
out.append(temp.val)
return out
在
if temp.left
中,您正在将同一节点添加回列表。我建议你用一个调试器来逐步完成你的代码,这并不是对你的直接问题的回答,但是为什么不使用一个预构建的树模块而不是滚动你自己的呢?例如: