按顺序复制二叉树

Tak*_*ama 1 c++ tree

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

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何将父节点链接到节点作为其顺序。

Aru*_*run 5

假设orgTree指向根 ( 2)。对于复制,我们必须执行以下操作:

替代文字

  1. 在 处创建一个节点copyTree,并将值 2 复制到其中
  2. 如果orgTree->left != NULL,调用copyInOrder( orgTree->left, copyTree->left );
  3. 如果orgTree->right != NULL,调用copyInOrder( orgTree->right, copyTree->right );

顺便说一句,这种类型的遍历被称为pre-order traversal, in-order traversal 是不同的。