克隆一棵树
树的创建是递归的,那么树的克隆也采用递归的方式
如下为先序遍历的方法克隆一棵树
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 }