Advertisement
Guest User

Untitled

a guest
Jul 30th, 2014
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. public BSTNode<T> createMirrorImage(BSTNode<T> originalNode,BSTNode<T> mirroredNode){
  2.  
  3. mirroredNode.setData(originalNode.getData());
  4.  
  5. if(originalNode.getLeft() != null){
  6. mirroredNode.setLeft(originalNode.getRight());
  7. }
  8.  
  9. if(originalNode.getRight() != null){
  10. mirroredNode.setRight(originalNode.getLeft());
  11. }
  12.  
  13. return mirroredNode;
  14.  
  15. }
  16.  
  17. public BSTNode<T> mirrorBinaryTreeIterative(BSTNode<T> root){
  18. if(root == null || (root.getLeft() == null && root.getRight() == null))
  19. return root;
  20.  
  21. BSTNode<T> parent = root;
  22. Stack<BSTNode<T>> treeStack = new Stack<BSTNode<T>>();
  23. treeStack.push(root);
  24.  
  25. while(!treeStack.empty()){
  26. parent = treeStack.pop();
  27.  
  28. BSTNode<T> temp = (BSTNode<T>)parent.getRight();
  29. parent.setRight(parent.getLeft());
  30. parent.setLeft(temp);
  31.  
  32. if((BSTNode<T>)parent.getRight() != null)
  33. treeStack.push((BSTNode<T>)parent.getRight());
  34. if(parent.getLeft() != null)
  35. treeStack.push((BSTNode<T>)parent.getLeft());
  36. }
  37. return root;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement