克隆一棵樹 【資料結構】
阿新 • • 發佈:2018-12-30
克隆一棵樹
樹的建立是遞迴的,那麼樹的克隆也採用遞迴的方式
如下為先序遍歷的方法克隆一棵樹
1 根據樹的根節點建立新的根節點
2 根據已知樹的左子樹遞迴建立新的左子樹
3 根據已知樹的右子樹遞迴建立新的右子樹
4子樹的建立過程按照2~3步驟進行
5如果子樹為空直接返回,跳出遞迴函式。
103 //克隆一棵樹
104 TreeNode* TreeClone(TreeNode* root)
105 {
106 if(root==NULL)
107 {
108 //空樹
109 return NULL;
110 }
111 //克隆根節點
112 TreeNode* new_root=CreateNode(root->data);
113 //遞迴克隆左子樹
114 new_root->lchild=TreeClone(root->lchild);
115 //遞迴克隆右子樹
116 new_root->rchild=TreeClone(root->rchild);
117 //返回根節點
118 return new_root;
119 }