Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public BSTNode<T> createMirrorImage(BSTNode<T> originalNode,BSTNode<T> mirroredNode){
- mirroredNode.setData(originalNode.getData());
- if(originalNode.getLeft() != null){
- mirroredNode.setLeft(originalNode.getRight());
- }
- if(originalNode.getRight() != null){
- mirroredNode.setRight(originalNode.getLeft());
- }
- return mirroredNode;
- }
- public BSTNode<T> mirrorBinaryTreeIterative(BSTNode<T> root){
- if(root == null || (root.getLeft() == null && root.getRight() == null))
- return root;
- BSTNode<T> parent = root;
- Stack<BSTNode<T>> treeStack = new Stack<BSTNode<T>>();
- treeStack.push(root);
- while(!treeStack.empty()){
- parent = treeStack.pop();
- BSTNode<T> temp = (BSTNode<T>)parent.getRight();
- parent.setRight(parent.getLeft());
- parent.setLeft(temp);
- if((BSTNode<T>)parent.getRight() != null)
- treeStack.push((BSTNode<T>)parent.getRight());
- if(parent.getLeft() != null)
- treeStack.push((BSTNode<T>)parent.getLeft());
- }
- return root;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement