题目描述:
题目链接:LeetCode-199-二叉树的右视图
解题思路: 在 102 的基础之上进行改进,一维数组每次只保存 size==1 时候的值
代码实现:
class Solution {
public List<Integer> rightSideView(TreeNode root) {
if (root == null) {
return new ArrayList<>();
}
bfs(root);
return res;
}
List<Integer> res = new ArrayList<>();
private void bfs(TreeNode node) {
if (node == null) {
return;
}
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.offer(node);
while (!queue.isEmpty()) {
int size = queue.size();
while (size > 0) {
TreeNode tmp = queue.poll();// 弹出一个元素
// 在 102 的基础之上进行改进,一维数组只保存每次size==1时候的值
if (size == 1) {
res.add(tmp.val);
}
if (tmp.left != null) {
queue.offer(tmp.left);
}
if (tmp.right != null) {
queue.offer(tmp.right);
}
size--;
}
}
}
}