The first one is BFS.
Public classSolution { PublicList<integer>Rightsideview (TreeNode root) {List<Integer> result =NewArraylist<integer>(); if(Root = =NULL) { returnresult; } Queue<TreeNode> queue =NewLinkedlist<treenode>(); Queue.offer (root); while(!Queue.isempty ()) { intSize =queue.size (); Result.add (Queue.peek (). val); for(inti = 0; i < size; i++) {TreeNode node=Queue.poll (); if(Node.right! =NULL) {queue.offer (node.right); } if(Node.left! =NULL) {queue.offer (node.left); } } } returnresult; }}
This is the DFS solution.
Public classSolution {List<Integer> result =NewArraylist<integer>(); PublicList<integer>Rightsideview (TreeNode root) {DFS (root,1); returnresult; } Public voidDFS (TreeNode root,intLevel ) { if(Root = =NULL) { return; } if(Result.size () <Level ) {Result.add (root.val); } dfs (Root.right, level+ 1); DFS (Root.left, level+ 1); }}
[Leetcode] Binary Tree Right Side View