Given A binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see Ordered from top to bottom.
For example:
Given The following binary tree,
1 <---/ 2 3 <---\ 5 4 <---
You should return [1, 3, 4]
.
/*** Definition for a binary tree node. * public class TreeNode {* int val; * TreeNode left; * TreeNode RI Ght * TreeNode (int x) {val = x;} }*/ Public classSolution { PublicList<integer>Rightsideview (TreeNode root) {List<Integer> res =NewArraylist<integer>(); Queue<TreeNode> queue =NewLinkedlist<treenode>(); if(root==NULL)returnRes; Queue.add (root); while(!Queue.isempty ()) { intLevelnum =queue.size (); List<Integer> sublist =NewArraylist<integer>(); for(inti=0; i<levelnum;i++) {TreeNode node=Queue.poll (); if(node.left!=NULL) Queue.add (node.left); if(node.right!=NULL) Queue.add (node.right); Sublist.add (Node.val); } intSize =sublist.size (); Res.add (sublist.get (Size-1)); } returnRes; }}
Very similar with Binary Tree level Order Traverse
Http://www.cnblogs.com/hygeia/p/4704027.html
Binary Tree Right Side View