//给定一个二叉树,找出其最大深度。 // // 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 // // 说明: 叶子节点是指没有子节点的节点。 // // 示例: //给定二叉树 [3,9,20,null,null,15,7], // // 3 // / \ // 9 20 // / \ // 15 7 // // 返回它的最大深度 3 。 // Related Topics 树 深度优先搜索 广度优先搜索 二叉树 👍 1012 👎 0 package leetcode.editor.cn; import com.code.leet.entiy.TreeNode; import java.util.LinkedList; import java.util.Queue; //104:二叉树的最大深度 class MaximumDepthOfBinaryTree { public static void main(String[] args) { //测试代码 Solution solution = new MaximumDepthOfBinaryTree().new Solution(); } //力扣代码 //leetcode submit region begin(Prohibit modification and deletion) /** * 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 queue = new LinkedList<>(); queue.add(root); int count = 0; while (!queue.isEmpty()) { int size = queue.size(); if (size > 0) { count++; } for (int i = 0; i < size; i++) { TreeNode node = queue.poll(); assert node != null; if (node.left != null) { queue.add(node.left); } if (node.right != null) { queue.add(node.right); } } } return count; } } //leetcode submit region end(Prohibit modification and deletion) }