Binary Tree Right Side View
Total Accepted: 8075 Total Submissions: 30533 My Submissions
Question Solution
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]
.
Credits:
Special thanks to @amrsaqr for adding this problem and creating all test cases.
Analysis, intuitively just consider the rightmost element, no then consider the left son, but the following conditions will occur
1
/ \
2 3
/
4
Our solution is to use the queue class in layers to put only the right node of each layer into the results list
public class Solution {
Public list<integer> Rightsideview (TreeNode root) {
List<integer> x=new arraylist<integer> ();
queue<treenode> queue = new linkedlist<treenode> ();
if (root!=null)
{
TreeNode Z=null;
TreeNode Y=null;
Queue.add (root);
Queue.add (z);
Boolean o=false;
while (Queue.peek ()!=null)
{
O=false;
Y=queue.element ();
X.add (Y.val);
while (Y!=null)
{
if (y.right!=null)
{
O=true;
Queue.add (Y.right);
}
if (y.left!=null)
{
O=true;
Queue.add (Y.left);
}
Queue.remove ();
Y=queue.element ();
}
if (o==true)
Queue.add (z);
Queue.remove ();
}
}
return x;
}
}
Leetcode#199binary Tree Right Side View