首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按顺序复制二叉树

按顺序复制二叉树
EN

Stack Overflow用户
提问于 2010-10-13 04:36:19
回答 4查看 25.4K关注 0票数 1

到目前为止,我编写的代码是:

代码语言:javascript
复制
void copyInOrder(TNode *orgTree, Tnode *& copyTree){
    if(orgTree !=NULL){
        copyInOrder(orgTree->left_link);
        //create leftmost node of tree but how to link to parent
        copyInOrder(orgTree->right_link);
    }
}

我不知道如何按顺序链接到父节点和节点。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-13 04:46:30

我想应该是这样的。

代码语言:javascript
复制
void copyInOrder(TNode *orgTree, Tnode *& copyTree){
    if(orgTree !=NULL){
        //left side
        TNode newLeftNode = cloneNode(orgTree->left_link);
        copyTree->left_link = newLeftNode;
        copyInOrder(orgTree->left_link, copyTree->left_link);

        //right side
        TNode newRightNode = cloneNode(orgTree->right_link);
        copyTree->right_link = newRightNode;
        copyInOrder(orgTree->right_link, copyTree->right_link);
    }
}
票数 3
EN

Stack Overflow用户

发布于 2011-06-01 18:13:58

代码语言:javascript
复制
tnode *copy(tnode *root) {
     tnode *new_root;
     if(root!=NULL){
         new_root=new tnode;
         new_root->data=root->data;
         new_root->lchild=copy(root->lchild);
         new_root->rchild=copy(root->rchild);
     } else return NULL;
     return new_root;
 }
票数 3
EN

Stack Overflow用户

发布于 2019-04-30 06:03:07

这是一个有效且简单的递归方法。

代码语言:javascript
复制
Tnode* CopyInOrder(Tnode* root){
    if(root == NULL){return NULL;}
    else{
        Tnode* temp = new Tnode;
        temp -> data = root -> data;
        temp -> left = copyInOrder(root -> left);
        temp -> right = copyInOrder(root -> right);
        return temp;
        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3918811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档