给定一个二叉树,返回它的中序 遍历。
例:
入力: [1、NULL、2,3] 。1 \ 2 / 3 出力: [1,3,2]
上級: 再帰アルゴリズムは非常に単純ですが、反復アルゴリズムで実行できますか?
バイナリツリートラバーサル
再帰を使用したくない場合は、ループを試してください。
コード
def inorderTraversal(self, root: TreeNode) -> List[int]:
ans = []
if root is not None:
stack, temp = [], root
while stack or temp is not None:
if temp is not None:
stack.append(temp)
temp = temp.left
else:
temp = stack.pop()
ans.append(temp.val)
temp = temp.right
return ans