WELCOME TO Pluto134340小行星

清风湿润,茶烟轻扬。

37. 二叉树的最大深度

104. 二叉树的最大深度

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:3

示例 2:

输入:root = [1,null,2]
输出:2
/**
 * 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;
 *     }
 * }
 */
View Code

方法一:深度优先搜索

class Solution {
    public int maxDepth(TreeNode root) {
        if(root == null) return 0;

        int left_len = maxDepth(root.left);
        int right_len = maxDepth(root.right);
        return Math.max(right_len, left_len) + 1;
    }
}

方法二:广度优先搜索

按层遍历:根结点入队,队首结点出队时,其左右子结点入队。

当前层结点均已出队,deep++;

class Solution {
    public int maxDepth(TreeNode root) {
        if(root == null) return 0;

        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        queue.offer(root);
        int deep=0;
        while(!queue.isEmpty()){
            int size = queue.size();
            while(size>0){
                TreeNode node = queue.poll();
                if(node.left!=null) queue.offer(node.left);
                if(node.right!=null) queue.offer(node.right);
                size--;
            }
            deep++;
        }
        return deep;
    }
}

 

posted @ 2026-01-26 11:03  Pluto134340  阅读(2)  评论(0)    收藏  举报