LeetCode104 二叉树的最大深度

  1. 题目
    给定一个二叉树 root ,返回其最大深度。
    
    二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
  2. 示例
    示例 1:
    输入:root = [3,9,20,null,null,15,7]
    输出:3
    
    示例 2:
    输入:root = [1,null,2]
    输出:2
  3. 解题思路
    1. 方法一:递归。(深度优先)
      1. 树的深度,等于子树的深度加1。
      2. 那么求二叉树的最大深度,也就是求其左子树和右子树深度的最大值。
    2. 方法二:层遍。(广度)
      1. 从根节点开始,依次遍历每一层的所有节点,那么深度+1。遍历后,将当前层节点的所有子树都作为根节点,继续遍历下一层。
      2. 使用额外内存存储当前层节点。
  4. 代码(Java)
    // 方法一
    class Solution {
        public int maxDepth(TreeNode root) {
            if (root == null) {
                return 0;
            }
            int maxLeft = maxDepth(root.left);
            int maxRight = maxDepth(root.right);
            return Math.max(maxLeft, maxRight) + 1;
        }
    }
    // 方法二
    class Solution {
        public int maxDepth(TreeNode root) {
            if (root == null) {
                return 0;
            }
            int i = 1;
            Stack<TreeNode> stack = new Stack<TreeNode>();
            Stack<TreeNode> stack2 = new Stack<TreeNode>();
            stack.push(root);
            while (!stack.isEmpty()) {
                TreeNode node = stack.pop();
                if (node.left != null || node.right != null) {
                    if (node.left != null) {
                        stack2.push(node.left);
                    }
                    if (node.right != null) {
                        stack2.push(node.right);
                    }
                }
                if (stack.isEmpty() && !stack2.isEmpty()) {
                    stack = stack2;
                    stack2 = new Stack<TreeNode>();
                    i++;
                }
            }
            return i;
        }
    }

相关推荐

  1. LeetCode104 深度

    2024-03-11 18:40:05       21 阅读
  2. [leetcode] 104. 深度

    2024-03-11 18:40:05       20 阅读
  3. LeetCode104.深度

    2024-03-11 18:40:05       14 阅读
  4. Leetcode 104. 深度

    2024-03-11 18:40:05       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 18:40:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 18:40:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 18:40:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 18:40:05       20 阅读

热门阅读

  1. 01.AJAX 概念和 axios 使用

    2024-03-11 18:40:05       22 阅读
  2. K8S Service

    2024-03-11 18:40:05       25 阅读
  3. Linux进程初步理解

    2024-03-11 18:40:05       26 阅读
  4. SpringBoot中事务

    2024-03-11 18:40:05       26 阅读
  5. Android10禁用wifi随机mac地址,固定mac地址

    2024-03-11 18:40:05       22 阅读
  6. 小蓝的钥匙(蓝桥杯错排)

    2024-03-11 18:40:05       24 阅读
  7. JDBC编程(数据库编程)

    2024-03-11 18:40:05       23 阅读
  8. 视觉信息处理和FPGA实现第二次作业

    2024-03-11 18:40:05       23 阅读
  9. 获取webshell的十种方法

    2024-03-11 18:40:05       20 阅读
  10. Docker与低代码开发:重塑软件开发的未来

    2024-03-11 18:40:05       21 阅读
  11. 计算机视觉(CV)技术的优势和挑战

    2024-03-11 18:40:05       22 阅读