FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
JavaArithmetic/src/LeetCode/LeetCode102.java at master · feinibuai/JavaArithmetic · GitHub
feinibuai
JavaArithmetic
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
JavaArithmetic
/
src
/
LeetCode
/
LeetCode102.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
57 lines (44 loc) · 1.74 KB
Breadcrumbs
JavaArithmetic
/
src
/
LeetCode
/
LeetCode102.java
Copy path
File metadata and controls
57 lines (44 loc) · 1.74 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package
LeetCode
;
import
javafx
.
util
.
Pair
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
LinkedList
;
import
java
.
util
.
List
;
public
class
LeetCode102
{
/// 102. Binary Tree Level Order Traversal
/// https://leetcode.com/problems/binary-tree-level-order-traversal/description/
/// 二叉树的层序遍历
/// 时间复杂度: O(n), n为树的节点个数
/// 空间复杂度: O(n)
// Definition for a binary tree node.
public
class
TreeNode
{
int
val
;
TreeNode
left
;
TreeNode
right
;
TreeNode
(
int
x
) {
val
=
x
; }
}
public
List
<
List
<
Integer
>>
levelOrder
(
TreeNode
root
) {
ArrayList
<
List
<
Integer
>>
res
=
new
ArrayList
<
List
<
Integer
>>();
if
(
root
==
null
)
return
res
;
// 我们使用LinkedList来做为我们的先入先出的队列
LinkedList
<
Pair
<
TreeNode
,
Integer
>>
queue
=
new
LinkedList
<
Pair
<
TreeNode
,
Integer
>>();
queue
.
addLast
(
new
Pair
<
TreeNode
,
Integer
>(
root
,
0
));
while
(!
queue
.
isEmpty
()){
// 出列,拿到队列的TreeNode和level
Pair
<
TreeNode
,
Integer
>
front
=
queue
.
removeFirst
();
TreeNode
node
=
front
.
getKey
();
int
level
=
front
.
getValue
();
// 如果level == res.size() --->新的一层--->new 出一个ArrayList()
if
(
level
==
res
.
size
()) {
res
.
add
(
new
ArrayList
<
Integer
>());
}
assert
level
<
res
.
size
();
res
.
get
(
level
).
add
(
node
.
val
);
if
(
node
.
left
!=
null
)
queue
.
addLast
(
new
Pair
<
TreeNode
,
Integer
>(
node
.
left
,
level
+
1
));
if
(
node
.
right
!=
null
)
queue
.
addLast
(
new
Pair
<
TreeNode
,
Integer
>(
node
.
right
,
level
+
1
));
}
return
res
;
}
}
Back
|
FazBrowse Home
|
New Git URL