Advertisement
Guest User

Untitled

a guest
Dec 18th, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. /**
  2. * Definition for binary tree
  3. * public class TreeNode {
  4. * int val;
  5. * TreeNode left;
  6. * TreeNode right;
  7. * TreeNode(int x) { val = x; }
  8. * }
  9. */
  10. public class Solution {
  11. public List<List<Integer>> levelOrderBottom(TreeNode root) {
  12. ArrayList<List<Integer>> result = new ArrayList<List<Integer>>();
  13. ArrayList<TreeNode> row = new ArrayList<TreeNode>();
  14. ArrayList<Integer> rowVals = new ArrayList<Integer>();
  15. if(root==null)
  16. return result;
  17.  
  18. row.add(root);
  19. while(!row.isEmpty()){
  20. rowVals.clear();
  21. for(int i = 0; i < row.size(); i++){
  22. TreeNode curr = row.get(i);
  23. rowVals.add(curr.val);
  24. }
  25. result.add(0,(ArrayList<Integer>)rowVals.clone());
  26. row = traverseRow(row);
  27. }
  28.  
  29. return result;
  30. }
  31.  
  32. public ArrayList<TreeNode> traverseRow(ArrayList<TreeNode> row){
  33. ArrayList<TreeNode> r = new ArrayList<TreeNode>();
  34. for(int i = 0; i < row.size(); i++){
  35. TreeNode curr = row.get(i);
  36. if(curr.left!=null) r.add(curr.left);
  37. if(curr.right!=null) r.add(curr.right);
  38. }
  39.  
  40. return r;
  41. }
  42.  
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement