#199.Binary Tree Right Side View [LeetCode Grind 75 in Java]
[Problem Link] https://leetcode.com/problems/binary-tree-right-side-view/
class Solution {
public List<Integer> rightSideView(TreeNode root) {
ArrayList<Integer> ans = new ArrayList<>();
if(root == null) return ans;
Queue<TreeNode> q = new LinkedList<>();
q.add(root);
ans.add(root.val);
boolean f = false;
while(!q.isEmpty()){
int sz = q.size();
f = false;
while(sz -- > 0){
TreeNode cn = q.poll();
if(cn.right != null){
q.add(cn.right);
if(!f){
ans.add(cn.right.val);
f = true;
}
}
if(cn.left != null){
q.add(cn.left);
if(!f){
ans.add(cn.left.val);
f = true;
}
}
}
}
return ans;
}
}