深度复制一个二叉树。

给定一个二叉树,返回一个他的 克隆品 。

您在真实的面试中是否遇到过这个题?

Yes
样例

给定一个二叉树:

     1
/ \
2 3
/ \
4 5

返回其相同结构相同数值的克隆二叉树:

     1
/ \
2 3
/ \
4 5
思路: 递归:用前序中序或者后序遍历,遍历每个节点,复制每个节点。
           
题目很简单,但需要注意,当根节点左右孩子都为空时,也不能将根节点直接返回,必须是将其拷贝才可以!
若直接返回根节点,则会提示,返回的是一个引用,而非拷贝!!!!!
/**
* 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 NULL;
} TreeNode* pHead=new TreeNode(root->val); if(root->left!=NULL){
pHead->left=cloneTree(root->left);
} if(root->right!=NULL){
pHead->right=cloneTree(root->right);
} return pHead;
}
};


Lintcode---克隆二叉树的更多相关文章

  1. LintCode2016年8月22日算法比赛----克隆二叉树

    克隆二叉树 题目描述 深度复制一个二叉树. 给定一个二叉树,返回一个它的克隆品. 样例 给定一个二叉树: 1 / \ 2 3 / \ 4 5 返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 ...

  2. Lintcode 375.克隆二叉树

    -------------------------- 水题 AC代码: /** * Definition of TreeNode: * public class TreeNode { * public ...

  3. JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/对象的克隆/二叉树

    /** * Math类.Random类.Arrays类:具体查JAVA手册...... */ public class Main { public static void main(String[] ...

  4. Lintcode 97.二叉树的最大深度

    --------------------------------- AC代码: /** * Definition of TreeNode: * public class TreeNode { * pu ...

  5. lintcode:等价二叉树

    等价二叉树 检查两棵二叉树是否等价.等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等. 样例 1 1 / \ / \ 2 2 and 2 2 / / 4 4 就是 ...

  6. lintcode :二叉树的最大深度

    题目: 二叉树的最大深度 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的距离. 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最大深度为3. 解 ...

  7. lintcode:二叉树的中序遍历

    题目: 二叉树的中序遍历 给出一棵二叉树,返回其中序遍历 样例 给出二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,3,2]. 挑战 你能使用非递归算法来实现么? 解题: 程序直接来源 ...

  8. lintcode 155 二叉树的最小深度

    二叉树的最小深度   描述 笔记 数据 评测 给定一个二叉树,找出其最小深度. 二叉树的最小深度为根节点到最近叶子节点的距离. 您在真实的面试中是否遇到过这个题? Yes 哪家公司问你的这个题? Ai ...

  9. lintcode.66 二叉树前序遍历

    二叉树的前序遍历    描述 笔记 数据 评测 给出一棵二叉树,返回其节点值的前序遍历. 您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返 ...

  10. lintcode.67 二叉树中序遍历

    二叉树的中序遍历    描述 笔记 数据 评测 给出一棵二叉树,返回其中序遍历 您在真实的面试中是否遇到过这个题? Yes 样例 给出二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,3, ...

随机推荐

  1. jquery-问题解答

    1.var v = $('.summer-input:input').val(); //依据class获取input 2.var v = $('input[name=user\\.name]').va ...

  2. squid中实现https的透明代理

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  3. Ext面板

    <HTML> <HEAD> <TITLE>面板</TITLE> <link rel="stylesheet" type=&qu ...

  4. AIR:使用 HTML + Javascript 开发桌面应用

    背景 断断续续用Winform和WPF开发过一些小工具,始终不得其法门,在玩Flex的时候就接触过AIR,最近发现可以用HTML + Javascript开发AIR应用,本文就尝试一下(Hello,W ...

  5. 无线AP和无线路由器区别wifi热点

    转自:http://network.51cto.com/art/201310/413327.htm 就像很多用户很容易混淆无线上网卡和无线网卡一样,很多用户也分不清无线AP和无线路由,小峰便是其中的一 ...

  6. MySQL Cluster(MySQL 集群) 初试

    MySQL Cluster 是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5.0及 ...

  7. go语言基础之 if else的使用

    一.if_else 示例1: package main //必须有一个main包 import "fmt" func main() { a := 11 if a == 10 { f ...

  8. TestNG的组測试和组中组測试

    在编写測试的过程中,我们常常遇到仅仅想运行个别或者某一部分/某一类型的測试用例,这时我们能够使用TestNG的分组測试方法 分组測试在配置时.TestNG运行的原则是:仅仅保留最小集合进行运行 看代码 ...

  9. Android -- 图像处理(信息量超大)

    Android的图像处理提供的API很帮,但是不适合用来写游戏,写游戏还是用专门的引擎比较好. Android的图像处理还有3D的处理的API,感觉超屌. 我先分享一下Android的一般的处理,比如 ...

  10. Hibernate之一对一关联映射

    Hibernate中一对一关联映射共分为两种,一种是一对一主键关联映射,另一种是一对一唯一外键关联映射.下面简单介绍一下这两种关联映射. 一对一主键关联映射 一对一主键关联映射的两个实体有相同的ID. ...