package tree;
public class DoubleTree {
/**
* Write a program that converts a given tree to its Double tree.
* To create Double tree of the given tree, create a new duplicate for each node,
* and insert the duplicate as the left child of the original node.
So the tree…
2
/ \
1 3
is changed to…
2
/ \
2 3
/ /
1 3
/
1
* @param args
*/
public static void doubleTree(TreeNode root){
TreeNode cur = root;
if(cur==null) return;
doubleTree(cur.left);
doubleTree(cur.right);
TreeNode newNode = new TreeNode(cur.value);
newNode.left = cur.left;
cur.left = newNode;
}
public static void print(TreeNode root){
if(root==null) return;
System.out.print(root.value+" ");
print(root.left);
print(root.right);
}
public static void main(String[] args) {
TreeNode root = new TreeNode(2);
root.left = new TreeNode(1);
root.right = new TreeNode(3);
print(root);
doubleTree(root);
System.out.println();
print(root);
}
}
DoubleTree
最新推荐文章于 2019-09-01 10:43:45 发布