Skip to content

Commit cdf49ab

Browse files
committed
solve 102.二叉树的层序遍历
1 parent 2c59c4a commit cdf49ab

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

zh/102.二叉树的层序遍历.java

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/*
2+
* @lc app=leetcode.cn id=102 lang=java
3+
*
4+
* [102] 二叉树的层序遍历
5+
*
6+
* https://leetcode-cn.com/problems/binary-tree-level-order-traversal/description/
7+
*
8+
* algorithms
9+
* Medium (62.88%)
10+
* Likes: 508
11+
* Dislikes: 0
12+
* Total Accepted: 135.3K
13+
* Total Submissions: 215.2K
14+
* Testcase Example: '[3,9,20,null,null,15,7]'
15+
*
16+
* 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
17+
*
18+
*
19+
*
20+
* 示例:
21+
* 二叉树:[3,9,20,null,null,15,7],
22+
*
23+
* ⁠ 3
24+
* ⁠ / \
25+
* ⁠ 9 20
26+
* ⁠ / \
27+
* ⁠ 15 7
28+
*
29+
*
30+
* 返回其层次遍历结果:
31+
*
32+
* [
33+
* ⁠ [3],
34+
* ⁠ [9,20],
35+
* ⁠ [15,7]
36+
* ]
37+
*
38+
*
39+
*/
40+
41+
// @lc code=start
42+
/**
43+
* Definition for a binary tree node.
44+
* public class TreeNode {
45+
* int val;
46+
* TreeNode left;
47+
* TreeNode right;
48+
* TreeNode(int x) { val = x; }
49+
* }
50+
*/
51+
class Solution {
52+
public List<List<Integer>> levelOrder(TreeNode root) {
53+
List<List<Integer>> result = new ArrayList<>();
54+
if (root == null) {
55+
return result;
56+
}
57+
58+
Queue<TreeNode> queue = new LinkedList<>();
59+
queue.offer(root);
60+
61+
while (!queue.isEmpty()) {
62+
List<Integer> level = new ArrayList<>();
63+
int size = queue.size();
64+
for (int i = 0; i < size; i++) {
65+
TreeNode p = queue.poll();
66+
level.add(p.val);
67+
if (p.left != null) {
68+
queue.offer(p.left);
69+
}
70+
if (p.right != null) {
71+
queue.offer(p.right);
72+
}
73+
}
74+
result.add(level);
75+
}
76+
77+
return result;
78+
}
79+
}
80+
// @lc code=end
81+

0 commit comments

Comments
 (0)