Skip to content

Instantly share code, notes, and snippets.

@cangoal
Last active August 29, 2015 14:22
Show Gist options
  • Save cangoal/9f15b93071f473181b6b to your computer and use it in GitHub Desktop.
Save cangoal/9f15b93071f473181b6b to your computer and use it in GitHub Desktop.
LeetCode - Binary Tree Right Side View
//
public List<Integer> rightSideView(TreeNode root) {
List<Integer> ret = new ArrayList<Integer>();
helper(ret, root, 0);
return ret;
}
private void helper(List<Integer> ret, TreeNode root, int level){
if(root == null) return;
if(ret.isEmpty() || level >= ret.size()){
ret.add(root.val);
}
helper(ret, root.right, level + 1);
helper(ret, root.left, level + 1);
}
//
public List<Integer> rightSideView(TreeNode root) {
ArrayList<Integer> ret = new ArrayList<Integer>();
if(root == null) return ret;
TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();
helper(map, root, 0);
Iterator it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Map.Entry)it.next();
ret.add((Integer)entry.getValue());
}
return ret;
}
public void helper(TreeMap<Integer, Integer> map, TreeNode root, int level){
if(root == null) return;
helper(map, root.right, level + 1);
helper(map, root.left, level + 1);
if(!map.containsKey(level)){
map.put(level, root.val);
}
}
//
public List<Integer> rightSideView(TreeNode root) {
ArrayList<Integer> ret = new ArrayList<Integer>();
if(root == null) return ret;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
helper(map, root, 0);
Map<Integer, Integer> sortedMap = new TreeMap<Integer, Integer>(map);
Iterator it = sortedMap.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Map.Entry)it.next();
ret.add((Integer)entry.getValue());
}
return ret;
}
public void helper(HashMap<Integer, Integer> map, TreeNode root, int level){
if(root == null) return;
helper(map, root.right, level + 1);
helper(map, root.left, level + 1);
if(!map.containsKey(level)){
map.put(level, root.val);
}
}
//
public List<Integer> rightSideView(TreeNode root) {
List<Integer> ret = new ArrayList<Integer>();
if(root==null) return ret;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
helper(root, map, 0);
if(!map.isEmpty()){
List<Integer> sortedKeys = new ArrayList<Integer>(map.keySet());
Collections.sort(sortedKeys);
for(int i=0; i<sortedKeys.size(); i++){
ret.add(map.get(sortedKeys.get(i)));
}
}
return ret;
}
public void helper(TreeNode root, HashMap<Integer, Integer> map, int level){
if(root == null) return;
helper(root.right, map, level+1);
if(!map.containsKey(level)){
map.put(level, root.val);
}
helper(root.left, map, level+1);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment