二叉树非递归遍历——统一模板

中序遍历

def inorderTraversal(self, root: TreeNode) -> List[int]:
        stack = [[root, 0]]
        res = []
        while stack:
            node, flag = stack.pop()
            if node == None:
                continue
            if flag == 0:
                stack.append([node.right, 0])
                stack.append([node, 1])
                stack.append([node.left, 0])
            else:
                res.append(node.val)
        return res

其他的遍历只用改一下入栈顺序即可

你可能感兴趣的:(python刷题)