https://leetcode.com/problems/binary-tree-right-side-view/
Thoughts
We need a BFS for the tree,
traverse each level add the node to a Deque
, return the head of deque
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<Integer> rightSideView(TreeNode root) { List<Integer> lst = new ArrayList<>(); if (root == null) { return lst; } Queue<TreeNode> dq = new LinkedList<>(); dq.offer(root); TreeNode lastNode = null; while (dq.size() != 0) { int levelSize = dq.size(); for (int i = 0; i < levelSize; i++) { lastNode = dq.poll(); if (lastNode.left != null) { dq.offer(lastNode.left ); } if (lastNode.right!= null) { dq.offer(lastNode.right); } } lst.add(lastNode.val); } return lst; } }
|