题目:克隆二叉树
问题描述:给定一棵二叉树,返回一个他的克隆品。
思路:申请一个新的根节点,把原来根节点赋给它,使原先的左子树等于新根的左子树,原先的右子树等于新根的右子树。
代码:
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 NULL;
else{
TreeNode*root1=new TreeNode(root->val);
root1->left=cloneTree(root->left);
root1->right=cloneTree(root->right);
return root1;
}
}
};
感想:做这道题时遇到一个问题,TreeNode*root1=new TreeNode(root->val)我一直写成TreeNode*root1=new TreeNode(root),想不明白为什么是新根等于原先跟的值,最后听舍友讲终于弄明白了。