树的拷贝

来源:互联网 发布:武神赵子龙网络点击率 编辑:程序博客网 时间:2024/06/04 17:52

1.合法性检测,同时也是递归拷贝结束的条件
2.递归拷贝左子树,返回新的左子树的指针
3.递归拷贝右子树,返回新的右子树的指针
4.给新的根节点分配内存
5.将上述得到的新左右子树指针初始化新的根节点
6.将形参根节点的数据复制到新根节点的数据域;

BiTNode * CopyTree(BiTNode * T){    BiTNode * newRoot = NULL;    BiTNode * newLeft = NULL;    BiTNode * newRight = NULL;    if (T == NULL)    {        return NULL;    }    if (T->lchild)    {        newLeft = CopyTree(T->lchild);    }    else    {        newLeft = NULL;    }    if (T->rchild)    {        newRight = CopyTree(T->rchild);    }    else    {        newRight = NULL;    }    newRoot = (BiTNode*)malloc(sizeof(BiTNode));    if (newRoot == NULL)        return NULL;    newRoot->lchild = newLeft;    newRoot->rchild = newRight;    newRoot->data = T->data;    return newRoot;}
0 0
原创粉丝点击