原题网址: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;
}
};
本文详细解析了深度复制二叉树的算法实现,通过递归方式从根节点开始,逐一复制左孩子、右孩子及其子树,直至完成整棵树的复制。提供了完整的AC代码示例。
257

被折叠的 条评论
为什么被折叠?



