Skip to content

Commit 2d53331

Browse files
committed
add 104
1 parent 045b9b7 commit 2d53331

File tree

3 files changed

+93
-0
lines changed

3 files changed

+93
-0
lines changed

README.md

+8
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@
5252
| 234 | [Palindrome Linked List][234] |
5353
| 141 | [Linked List Cycle][141] |
5454

55+
**Trees**
56+
57+
| # | Title |
58+
| :--: | :------------------------------------------ |
59+
| 104 | [Maximum Depth of Binary Tree][104] |
60+
61+
5562
**其他**
5663

5764
| # | Title |
@@ -91,3 +98,4 @@
9198
[021]: https://github.com/andavid/leetcode-java/blob/master/note/021/README.md
9299
[234]: https://github.com/andavid/leetcode-java/blob/master/note/234/README.md
93100
[141]: https://github.com/andavid/leetcode-java/blob/master/note/141/README.md
101+
[104]: https://github.com/andavid/leetcode-java/blob/master/note/104/README.md

note/104/README.md

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# [Maximum Depth of Binary Tree][title]
2+
3+
## Description
4+
5+
Given a binary tree, find its maximum depth.
6+
7+
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
8+
9+
For example:
10+
Given binary tree [3,9,20,null,null,15,7],
11+
12+
```
13+
3
14+
/ \
15+
9 20
16+
/ \
17+
15 7
18+
```
19+
20+
return its depth = 3.
21+
22+
## 思路
23+
24+
递归。求二叉树 root 节点左子树和右子树的深度,其中较大的深度加 1 即为二叉树的深度。
25+
26+
## [完整代码][src]
27+
28+
```java
29+
/**
30+
* Definition for a binary tree node.
31+
* public class TreeNode {
32+
* int val;
33+
* TreeNode left;
34+
* TreeNode right;
35+
* TreeNode(int x) { val = x; }
36+
* }
37+
*/
38+
class Solution {
39+
public int maxDepth(TreeNode root) {
40+
if (root == null) {
41+
return 0;
42+
}
43+
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
44+
}
45+
}
46+
```
47+
48+
[title]: https://leetcode.com/problems/maximum-depth-of-binary-tree
49+
[src]: https://github.com/andavid/leetcode-java/blob/master/src/com/andavid/leetcode/_104/Solution.java
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
class Solution {
2+
public static int maxDepth(TreeNode root) {
3+
if (root == null) {
4+
return 0;
5+
}
6+
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
7+
}
8+
9+
public static class TreeNode {
10+
int val;
11+
TreeNode left;
12+
TreeNode right;
13+
TreeNode(int x) {
14+
val = x;
15+
}
16+
}
17+
18+
public static void main(String[] args) {
19+
TreeNode root = new TreeNode(3);
20+
TreeNode node1 = new TreeNode(9);
21+
TreeNode node2 = new TreeNode(20);
22+
TreeNode node3 = new TreeNode(15);
23+
TreeNode node4 = new TreeNode(7);
24+
25+
root.left = node1;
26+
root.right = node2;
27+
node1.left = node1.right = null;
28+
node2.left = node3;
29+
node2.right = node4;
30+
node3.left = node3.right = null;
31+
node4.left = node4.right = null;
32+
33+
System.out.println(maxDepth(root));
34+
}
35+
36+
}

0 commit comments

Comments
 (0)