Advertisement
Guest User

Untitled

a guest
May 24th, 2015
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 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 TreeNode UpsideDownBinaryTree(TreeNode root) {
  12. if(root == null)
  13. return null;
  14. ArrayList<ArrayList<Integer>> tmp = new ArrayList<ArrayList<Integer>>();
  15. helper(root, tmp);
  16. TreeNode newRoot = new TreeNode(tmp.get(tmp.size() - 1).get(0));
  17. tmp.remove(tmp.size() - 1);
  18. construct(newRoot, tmp);
  19. return newRoot;
  20. }
  21.  
  22. public void helper(TreeNode root, ArrayList<ArrayList<Integer>> tmp)
  23. {
  24. if(root == null)
  25. return;
  26. ArrayList<Integer> cur = new ArrayList<Integer>();
  27. cur.add(root.val);
  28. if(root.right != null)
  29. cur.add(root.right.val);
  30.  
  31. tmp.add(cur);
  32.  
  33. helper(root.left, tmp);
  34. }
  35.  
  36. public void construct(TreeNode newRoot, ArrayList<ArrayList<Integer>> tmp)
  37. {
  38. if(tmp.size() == 0)
  39. return;
  40.  
  41. ArrayList<Integer> cur = tmp.get(tmp.size() - 1);
  42. if(cur.size() > 1)
  43. newRoot.left = new TreeNode(cur.get(1));
  44. newRoot.right = new TreeNode(cur.get(0));
  45. tmp.remove(tmp.size() - 1);
  46.  
  47. construct(newRoot.right , tmp);
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement