1:问题描述
深度复制一个二叉树。
给定一个二叉树,返回一个他的 克隆品 。
样例给定一个二叉树:
1
/ \
2 3
/ \
4 5
返回其相同结构相同数值的克隆二叉树:
1
/ \
2 3
/ \
4 5
3:解题代码
/**
* 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;
if(root!=NULL)
{
if(root->val)newnode->val=root->val;
if(root->left!=NULL) newnode->left=cloneTree(root->left);
if(root->right!=NULL) newnode->right=cloneTree(root->right);
}
return newnode;
}
};
4:感想:
题目很容易看懂,思路也很容易想到就是创造相同的结构,并且相同位置上的值相同。做题的收获就是,通过做题自己的想法更广阔了。