将二叉树附加到另一棵二叉树

时间:2018-11-03 10:35:40

标签: java binary-tree

该方法将树T1和T2的内部结构附加​​为叶子参考p的左右子树,并将T1和T2重置为空树;如果p不是叶子,则会发生错误情况。

public void attach(Node p, BinaryTree t1, BinaryTree t2) {
    if (p.left == null) { //logic error??
        p.left = t1.root;
        t1.root = null;
    }
    if (p.right == null) {
        p.right = t2.root;
        t1.root = null;
    }
    else
        System.out.print("is not leaf");
}

1 个答案:

答案 0 :(得分:0)

当您将t1.root分配给p.left并将t2.root分配给p.right时,请不要删除t1和t2根。

这是因为Java使用t1和t2对象来引用p.left和p.right

public void attach(Node p, BinaryTree t1, BinaryTree t2){
    if(p.left ==null){
        p.left=t1.root;
    }
    if(p.right==null){
        p.right=t2.root;
    }
    else
        System.out.print("is not leaf");
}