1. 程式人生 > >克隆一棵樹 【資料結構】

克隆一棵樹 【資料結構】

克隆一棵樹
樹的建立是遞迴的,那麼樹的克隆也採用遞迴的方式
如下為先序遍歷的方法克隆一棵樹

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 }