File tree 4 files changed +59
-2
lines changed
4 files changed +59
-2
lines changed Original file line number Diff line number Diff line change 102
102
* [ 99. Recover Binary Search Tree] ( leetcode-99-Recover-Binary-Search-Tree.md )
103
103
* [ 100. Same Tree] ( leetcode-100-Same-Tree.md )
104
104
* [ leetcode 100 斩!回顾] ( leetcode100斩回顾.md )
105
- * [ 101 题到 103 题] ( leetcode-101-200.md )
105
+ * [ 101 题到 104 题] ( leetcode-101-200.md )
106
106
* [ 101. Symmetric Tree] ( leetcode-101-Symmetric-Tree.md )
107
107
* [ 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 )
Original file line number Diff line number Diff line change 6
6
7
7
<a href =" leetcode-103-Binary-Tree-Zigzag-Level-Order-Traversal.html " >103. Binary Tree Zigzag Level Order Traversal</a >
8
8
9
+ <a href =" leetcode-104-Maximum-Depth-of-Binary-Tree.html " >104. Maximum Depth of Binary Tree</a >
Original file line number Diff line number Diff line change @@ -118,6 +118,8 @@ public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
118
118
queue. offer(curNode. right);
119
119
}
120
120
}
121
+ // 因为上边 queue.offer(curNode.left) 没有判断是否是 null
122
+ // 所以要判断当前是否有元素
121
123
if (subList. size() > 0 ) {
122
124
ans. add(subList);
123
125
}
Original file line number Diff line number Diff line change
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
+ 依旧考的是二叉树的遍历方式,没有什么难点。
You can’t perform that action at this time.
0 commit comments