题目
给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例 1:
输入: [1,2,3,null,5,null,4]
输出: [1,3,4]
解
class Solution {
public List<Integer> rightSideView(TreeNode root) {
return bfs(root);
}
public List<Integer> bfs(TreeNode root) {
List<Integer> res = new ArrayList<>();
if (root == null) {
return res;
}
LinkedList<TreeNode> queue1 = new LinkedList<>();
LinkedList<TreeNode> queue2 = new LinkedList<>();
queue1.offer(root);
while (!queue1.isEmpty()) {
TreeNode poll = queue1.poll();
if (poll.left != null) {
queue2.add(poll.left);
}
if (poll.right != null) {
queue2.add(poll.right);
}
if (queue1.isEmpty()) {
res.add(poll.val);
queue1 = queue2;
queue2 = new LinkedList<>();
}
}
return res;
}
}