力扣-二叉树的最大深度

思路分析

  1. 深度优先遍历
  2. 广度优先遍历

代码实现

这两种都是模板代码,这里做记录方便后续回顾

  1. 深度优先遍历
java 复制代码
public int maxDepth(TreeNode root){
   // 递归结束条件
    if(root == null) return 0;
    // 递归遍历左子树
    int left = maxDepth(root.left);
    // 递归遍历右子树
    int right = maxDepth(root.right);

    return Math.max(left, right) + 1;
}
  1. 广度优先遍历
java 复制代码
public int maxDepth2(TreeNode root){
   Queue<TreeNode> queue = new ArrayDeque<>();
    // 根节点入队
    if(root != null) queue.offer(root);
    int level = 0;
    // 队非空时
    while (!queue.isEmpty()){
        // 获取当前队列长度
        int size = queue.size();
        // 遍历队列中当前层级节点
        while(size > 0){
            // 出队
            TreeNode poll = queue.poll();
            // 左节点入队
            if (poll.left != null) {
                queue.offer(poll.left);
            }
            // 右节点入队
            if (poll.right != null) {
                queue.offer(poll.right);
            }
            --size;
        }
        // 层级加一
        ++level;
    }
    return level;
}

复杂度分析

相关推荐
dialect_4 小时前
KMP算法
开发语言·c++·算法
reikocao4 小时前
卡尔曼滤波的动态机制:P如何改变融合权重
算法
漂流瓶jz5 小时前
UVA-1612 猜名次 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·题解·排序·aoapc·算法竞赛入门经典
吞下星星的少年·-·5 小时前
Div.2 CF 1130B题(构造,贪心)
算法·贪心·构造
文丑颜不良啊5 小时前
LeetCode1481~1500题目解析
java·leetcode
文丑颜不良啊6 小时前
LeetCode1381~1400题目解析
java·leetcode
是main不是漫7 小时前
【双指针——移动零】数组划分类题目的入门基石
c++·算法
深圳市快瞳科技有限公司8 小时前
野外鸟类AI识别落地实录:输入适配、结构化输出、去重聚合与置信度分流的工程实践
算法·计算机视觉·鸟类识别·鸟类ai识别·野外鸟类观测·林业调查
专注仿真9 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
小豆庄9 小时前
视频遮罩追踪退场后ID撞号的排查—多目标场景下的失效
opencv·算法·bug·视频·python3.11