BFS典型应用
每次纳入一层,当是一层最后一个点时,将其纳入集合,从而得到树的右视图
class Solution {
public List<Integer> rightSideView(TreeNode root) {
List<Integer> rs = new LinkedList<>();
Queue<TreeNode> queue = new LinkedList<>();
if(root == null) return rs;
queue.add(root);
while(queue.size() > 0) {
int size = queue.size();
for(int i = 0; i < size; i ++) {
TreeNode t = queue.poll();
if(t.left != null) queue.add(t.left);
if(t.right != null) queue.add(t.right);
if(i == size - 1) rs.add(t.val);
}
}
return rs;
}
}