94.バイナリツリーインオーダートラバーサルバイナリツリーインオーダートラバーサル

给定一个二叉树,返回它的中序 遍历。

例:

入力: [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

おすすめ

転載: blog.csdn.net/weixin_43336281/article/details/108571725