访谈算法 - 61 - 二叉树的右视图
最编程
2024-03-20 14:53:31
...
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;
}
}
推荐阅读