public class Solution {
public List<List<Integer>> levelOrderBottom(TreeNode root) {
List<List<Integer>>res=new ArrayList<List<Integer>>();
levelHelper(res,root,0);
return res;
}
public void levelHelper(List<List<Integer>>res,TreeNode root,int height){
if(root==null)return;
if(res.size()<=height){
res.add(0,new LinkedList<Integer>());
}
levelHelper(res,root.left,height+1);
levelHelper(res,root.right,height+1);
res.get(res.size()-height-1).add(root.val);
}
}
public List<List<Integer>> levelOrderBottom(TreeNode root) {
List<List<Integer>>res=new ArrayList<List<Integer>>();
levelHelper(res,root,0);
return res;
}
public void levelHelper(List<List<Integer>>res,TreeNode root,int height){
if(root==null)return;
if(res.size()<=height){
res.add(0,new LinkedList<Integer>());
}
levelHelper(res,root.left,height+1);
levelHelper(res,root.right,height+1);
res.get(res.size()-height-1).add(root.val);
}
}