LeetCode-94(二叉树的中序遍历)

 1.递归

时间复杂度O(n)

    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        accessTree(root,res);
        return res;
    }

    public void accessTree(TreeNode root,List<Integer>res){
        if(root == null){
            return;
        }

        accessTree(root.left,res);
        res.add(root.val);
        accessTree(root.right,res);
    }

2.循环迭代(栈)

 public List<Integer> inorderTraversal(TreeNode root){
        List<Integer> res = new ArrayList<>();
        Deque<TreeNode> stack = new LinkedList<>();
        while (root!=null || !stack.isEmpty()){
            while (root!=null){
                stack.push(root);
                root = root.left;
            }
            root = stack.pop();
            res.add(root.val);
            root = root.right;

        }
        return res;
    }

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-12 04:44:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-12 04:44:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-12 04:44:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-12 04:44:02       20 阅读

热门阅读

  1. 程序员:从懵懂无知被动选择到生活所迫

    2024-04-12 04:44:02       13 阅读
  2. 图层、窗口、画布、视图

    2024-04-12 04:44:02       12 阅读
  3. Linux提权:原理和枚举

    2024-04-12 04:44:02       17 阅读
  4. 分析前端请求中的“Unsupported Media Type”问题

    2024-04-12 04:44:02       15 阅读
  5. MySQL多表联合查询&聚合函数应用实例

    2024-04-12 04:44:02       15 阅读