原题网址:https://www.lintcode.com/problem/clone-binary-tree/description
描述
深度复制一个二叉树。
给定一个二叉树,返回一个他的 克隆品 。
您在真实的面试中是否遇到过这个题?
样例
给定一个二叉树:
1
/
2 3
/
4 5
返回其相同结构相同数值的克隆二叉树:
1 / 2 3 / 4 5
标签
二叉树
思路:创建二叉树,不用多说,递归。从根节点开始创建,然后是左孩子、右孩子。左、右孩子的子树也是相同的顺序,如此递归下去,直到所有节点拷贝创建完毕。
AC代码:
/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param root: The root of binary tree
* @return: root of new tree
*/
TreeNode * cloneTree(TreeNode * root) {
// write your code here
if (root==NULL)
{
return root;
}
TreeNode *newnode=new TreeNode(root->val);
newnode->left=cloneTree(root->left);
newnode->right=cloneTree(root->right);
return newnode;
}
};