深度复制一个二叉树。
给定一个二叉树,返回一个他的 克隆品 。
class Solution {
public:/**
* @param root: The root of binary tree
* @return root of new tree
*/
void look (TreeNode *root,TreeNode *&x)
{
if(root==NULL)
return;
x=new TreeNode;
x->val=root->val;
look(root->left,x->left);
look(root->right,x->right);
}
TreeNode* cloneTree(TreeNode *root) {
TreeNode *x;
if(root==NULL)
return NULL;
x=new TreeNode;
look(root,x);
return x;
// Write your code here
}
};
解题思路:建立一个新的根节点,然后遍历第一棵子树,将遍历的左右节点赋值给新的根节点即可