diff --git a/src/main/java/leetcode/editor/cn/MaximumDepthOfBinaryTree.java b/src/main/java/leetcode/editor/cn/MaximumDepthOfBinaryTree.java new file mode 100644 index 0000000..22d95d0 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/MaximumDepthOfBinaryTree.java @@ -0,0 +1,80 @@ +//给定一个二叉树,找出其最大深度。 +// +// 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 +// +// 说明: 叶子节点是指没有子节点的节点。 +// +// 示例: +//给定二叉树 [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) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/doc/content/MaximumDepthOfBinaryTree.md b/src/main/java/leetcode/editor/cn/doc/content/MaximumDepthOfBinaryTree.md new file mode 100644 index 0000000..636fd2e --- /dev/null +++ b/src/main/java/leetcode/editor/cn/doc/content/MaximumDepthOfBinaryTree.md @@ -0,0 +1,17 @@ +

给定一个二叉树,找出其最大深度。

+ +

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

+ +

说明: 叶子节点是指没有子节点的节点。

+ +

示例:
+给定二叉树 [3,9,20,null,null,15,7]

+ +
    3
+   / \
+  9  20
+    /  \
+   15   7
+ +

返回它的最大深度 3 。

+
Related Topics
  • 深度优先搜索
  • 广度优先搜索
  • 二叉树

  • 👍 1012
  • 👎 0
  • \ No newline at end of file