Skip to content

Commit 8d52afc

Browse files
committed
solve 199.二叉树的右视图
1 parent edc5c9a commit 8d52afc

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

zh/199.二叉树的右视图.java

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
/*
2+
* @lc app=leetcode.cn id=199 lang=java
3+
*
4+
* [199] 二叉树的右视图
5+
*
6+
* https://leetcode-cn.com/problems/binary-tree-right-side-view/description/
7+
*
8+
* algorithms
9+
* Medium (63.75%)
10+
* Likes: 235
11+
* Dislikes: 0
12+
* Total Accepted: 47.1K
13+
* Total Submissions: 73.9K
14+
* Testcase Example: '[1,2,3,null,5,null,4]'
15+
*
16+
* 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
17+
*
18+
* 示例:
19+
*
20+
* 输入: [1,2,3,null,5,null,4]
21+
* 输出: [1, 3, 4]
22+
* 解释:
23+
*
24+
* ⁠ 1 <---
25+
* ⁠/ \
26+
* 2 3 <---
27+
* ⁠\ \
28+
* ⁠ 5 4 <---
29+
*
30+
*
31+
*/
32+
33+
// @lc code=start
34+
/**
35+
* Definition for a binary tree node.
36+
* public class TreeNode {
37+
* int val;
38+
* TreeNode left;
39+
* TreeNode right;
40+
* TreeNode(int x) { val = x; }
41+
* }
42+
*/
43+
class Solution {
44+
public List<Integer> rightSideView(TreeNode root) {
45+
List<Integer> result = new ArrayList<>();
46+
if (root == null) {
47+
return result;
48+
}
49+
50+
Queue<TreeNode> queue = new LinkedList<>();
51+
queue.offer(root);
52+
53+
while (!queue.isEmpty()) {
54+
int size = queue.size();
55+
for (int i = 0; i < size; i++) {
56+
TreeNode node = queue.poll();
57+
if (node.left != null) {
58+
queue.offer(node.left);
59+
}
60+
if (node.right != null) {
61+
queue.offer(node.right);
62+
}
63+
if (i == size - 1) {
64+
result.add(node.val);
65+
}
66+
}
67+
}
68+
69+
return result;
70+
}
71+
}
72+
// @lc code=end
73+

0 commit comments

Comments
 (0)