Given A binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can SE E ordered from top to bottom.
For example:
Given The following binary tree,
1 <---/ 2 3 <---\ 5 4 <---
You should return [1, 3, 4]
.
Using queues, hierarchy traversal, the last node of each layer.
/*** 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> list =NewArrayList (); if(Root = =NULL){ returnlist; } Queue<TreeNode> queue =NewLinkedList (); Queue.add (root); while(!Queue.isempty ()) { intSize =queue.size (); for(inti = 0; i < size; i++) {TreeNode node=Queue.poll (); if(Node.left! =NULL) {queue.add (node.left); } if(Node.right! =NULL) {queue.add (node.right); } if(i = = size-1) {list.add (node.val); } } } returnlist; }}
Leetcode 199. Binary Tree Right Side view to see the leaf nodes----------Java