Skip to content

Commit a20cb8b

Browse files
committed
104
1 parent fe1a957 commit a20cb8b

4 files changed

+59
-2
lines changed

SUMMARY.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@
102102
* [99. Recover Binary Search Tree](leetcode-99-Recover-Binary-Search-Tree.md)
103103
* [100. Same Tree](leetcode-100-Same-Tree.md)
104104
* [leetcode 100 斩!回顾](leetcode100斩回顾.md)
105-
* [101 题到 103](leetcode-101-200.md)
105+
* [101 题到 104](leetcode-101-200.md)
106106
* [101. Symmetric Tree](leetcode-101-Symmetric-Tree.md)
107107
* [102. Binary Tree Level Order Traversal](leetcode-102-Binary-Tree-Level-Order-Traversal.md)
108-
* [103. Binary Tree Zigzag Level Order Traversal](leetcode-103-Binary-Tree-Zigzag-Level-Order-Traversal.md)
108+
* [103. Binary Tree Zigzag Level Order Traversal](leetcode-103-Binary-Tree-Zigzag-Level-Order-Traversal.md)
109+
* [104. Maximum Depth of Binary Tree](leetcode-104-Maximum-Depth-of-Binary-Tree.md)

leetcode-101-200.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@
66

77
<a href="leetcode-103-Binary-Tree-Zigzag-Level-Order-Traversal.html">103. Binary Tree Zigzag Level Order Traversal</a>
88

9+
<a href="leetcode-104-Maximum-Depth-of-Binary-Tree.html">104. Maximum Depth of Binary Tree</a>

leetcode-103-Binary-Tree-Zigzag-Level-Order-Traversal.md

+2
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
118118
queue.offer(curNode.right);
119119
}
120120
}
121+
//因为上边 queue.offer(curNode.left) 没有判断是否是 null
122+
//所以要判断当前是否有元素
121123
if (subList.size() > 0) {
122124
ans.add(subList);
123125
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# 题目描述(简单难度)
2+
3+
![](https://windliang.oss-cn-beijing.aliyuncs.com/104.jpg)
4+
5+
输出二叉树的深度。
6+
7+
# 解法一 DFS
8+
9+
依旧是考的二叉树的遍历。最简单的思路就是用递归进行 DFS 即可。
10+
11+
```java
12+
public int maxDepth(TreeNode root) {
13+
if (root == null) {
14+
return 0;
15+
}
16+
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
17+
}
18+
```
19+
20+
# 解法二 BFS
21+
22+
可以直接仿照 [103 题](<https://leetcode.wang/leetcode-103-Binary-Tree-Zigzag-Level-Order-Traversal.html>),利用一个队列,进行 BFS 即可。代码可以直接搬过来。
23+
24+
```java
25+
public int maxDepth(TreeNode root) {
26+
Queue<TreeNode> queue = new LinkedList<TreeNode>();
27+
List<List<Integer>> ans = new LinkedList<List<Integer>>();
28+
if (root == null)
29+
return 0;
30+
queue.offer(root);
31+
int level = 0;
32+
while (!queue.isEmpty()) {
33+
int levelNum = queue.size(); // 当前层元素的个数
34+
for (int i = 0; i < levelNum; i++) {
35+
TreeNode curNode = queue.poll();
36+
if (curNode != null) {
37+
if (curNode.left != null) {
38+
queue.offer(curNode.left);
39+
}
40+
if (curNode.right != null) {
41+
queue.offer(curNode.right);
42+
}
43+
}
44+
}
45+
level++;
46+
}
47+
return level;
48+
}
49+
```
50+
51+
#
52+
53+
依旧考的是二叉树的遍历方式,没有什么难点。

0 commit comments

Comments
 (0)