LeetCode 二叉树的最大深度 递归+层序遍历

知识点:

队列先进先出;

queue.offer() 入队;

queue.poll() 出队;

方法一 层序遍历:

每一轮 while 处理一层:先用 size 固定当前层数量,for 只处理这 size 个节点;孩子入队但留到下一轮;for 结束 depth++

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int maxDepth(TreeNode root) {
        if(root==null){
            return 0;
        }
        // 新建一个队列
        Queue<TreeNode> queue=new LinkedList<TreeNode>();
        queue.offer(root);  //根结点入队
        int depth=0;
        while(!queue.isEmpty()){
            int size=queue.size();  //当前层的节点数
            for(int i=0;i<size;i++){
                TreeNode node=queue.poll(); //取出当前层的一个结点
                if(node.left!=null){
                    queue.offer(node.left);  //当前层结点的左孩子
                }
                if(node.right!=null){
                    queue.offer(node.right);  //当前层结点的右孩子
                }

            }
            depth++;
        }
        return depth;
    }
}

方法二:

递归:深度优先遍历

二叉树深度=左右子树深度最大值+1

java 复制代码
class Solution {
    public int maxDepth(TreeNode root) {
       
        if(root==null){
            return 0;
        }else{
            int leftHeight=maxDepth(root.left);
            int rightHeight=maxDepth(root.right);
            return Math.max(leftHeight,rightHeight)+1;
        }
    }
}
相关推荐
Asize12 分钟前
数组数据结构底层:从灵活到陷阱
前端·javascript·算法
hairenwangmiao37 分钟前
B4041 [GESP202409 四级] 区间排序
算法·排序
人道领域1 小时前
【LeetCode刷题日记】47.全排列Ⅱ
java·开发语言·算法·leetcode
漂流瓶jz1 小时前
UVA-1606 两亲性分子 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·向量·aoapc·算法竞赛入门经典·atan2·浮点
Navigator_Z1 小时前
LeetCode //C - 1095. Find in Mountain Array
c语言·算法·leetcode
心软小念1 小时前
2026软件测试高频面试题
软件测试·面试·职场和发展
不会就选b1 小时前
算法日常・每日刷题--<二分查找>1
算法
「維他檸檬茶」1 小时前
大模型算法学习2026.6.13
学习·算法
叫我:松哥1 小时前
基于Python的共享单车租赁数据分析与预测系统,技术栈flask+boostrap+随机森林+XGBoost
人工智能·python·深度学习·算法·随机森林·数据分析·flask
BAGAE2 小时前
星链卫星数据获取:从太空安全到实时通信的技术革命
网络·数据结构·数据库·算法·云计算·hbase