美文网首页
LeetCode94 二叉树的中序遍历

LeetCode94 二叉树的中序遍历

作者: phantom34 | 来源:发表于2019-06-21 16:27 被阅读0次

    题目

    二叉树的中序遍历

    题目描述

    给出一个二叉树 用中序遍历输出

    方案

    中序遍历:考察到一个节点后,将其暂存,遍历完左子树后,再输出该节点的值,然后遍历右子树。(左根右)

    代码

      public List<Integer> inorderTraversal(TreeNode root) {
            List<Integer> list = new ArrayList<>();
    
            Stack<TreeNode> treeNodeStack = new Stack<TreeNode>();
    
            TreeNode node = root;
            while (node != null || !treeNodeStack.isEmpty()) {
                while (node != null) {
                    treeNodeStack.push(node);
                    node = node.left;
                }
                if (!treeNodeStack.isEmpty()) {
                    node = treeNodeStack.pop();
                    list.add(node.val);
                    node = node.right;
                }
            }
    
            return list;
        }
    

    结果

    image.png

    相关文章

      网友评论

          本文标题:LeetCode94 二叉树的中序遍历

          本文链接:https://www.haomeiwen.com/subject/aufuqctx.html