到目前为止我写的代码是:
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);
}
}
我不知道如何将节点的父节点链接到节点。
答案 0 :(得分:3)
我认为会是这样的。
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);
}
}
答案 1 :(得分:3)
假设orgTree
指向root(2
)。对于复制,我们必须执行以下操作:
copyTree
创建一个节点,并将值2复制到其中orgTree->left != NULL
,请致电copyInOrder( orgTree->left, copyTree->left );
orgTree->right != NULL
,请致电copyInOrder( orgTree->right, copyTree->right );
答案 2 :(得分:3)
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 :(得分:0)
这是一种有效且简单的递归方法
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;
}
}
答案 4 :(得分:0)
我无权举报或发表评论。也许获得授权的人会对被劫持的链接采取行动。然后,也许删除我的帖子(此帖子),因为它不再相关。
参考 Arun 于 10 年 10 月 12 日 21:02 发表的帖子:
我检查了链接(即右键单击,然后单击“检查”)。该 URL 看起来合法。然而,当我真正点击链接时,我被重定向到一个完全不同的网站 URL,该网站想要下载和安装插件。 Norton Security 会阻止该网站。在我看来,原始链接似乎被劫持了。
原帖展示了知识和帮助。
为了安全起见,或许我们应该改用google搜索词“预购遍历”。