Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Definition for a binary tree node.
- * public class TreeNode {
- * int val;
- * TreeNode left;
- * TreeNode right;
- * TreeNode(int x) { val = x; }
- * }
- */
- class Solution {
- public List<Integer> rightSideView(TreeNode root) {
- List<Integer> list = new LinkedList();
- if (root == null) return list;
- Deque<TreeNode> queue1 = new ArrayDeque<TreeNode>();
- Deque<TreeNode> queue2 = new ArrayDeque<TreeNode>();
- queue1.offer(root);
- while (!queue1.isEmpty() || !queue2.isEmpty()){
- while (!queue1.isEmpty()){
- TreeNode node = queue1.poll();
- if (queue1.isEmpty()){
- list.add(node.val);
- }
- if (node.left != null){
- queue2.offer(node.left);
- }
- if (node.right != null){
- queue2.offer(node.right);
- }
- }
- while (!queue2.isEmpty()){
- TreeNode node = queue2.poll();
- if (queue2.isEmpty()){
- list.add(node.val);
- }
- if (node.left != null){
- queue1.offer(node.left);
- }
- if (node.right != null){
- queue1.offer(node.right);
- }
- }
- }
- return list;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement