Lintcode375 Clone Binary Tree solution 题解
【题目描述】
For the given binary tree, return a deep copy of it.
深度复制一个二叉树,给定一个二叉树,返回一个他的克隆品。
【题目链接】
www.lintcode.com/en/problem/clone-binary-tree/
【题目解析】
假设有如下链表:
|---------------|
| v
1 --> 2 --> 3 --> 4
节点1的random指向了3。首先我们可以通过next遍历链表,依次拷贝节点,并将其添加到原节点后面,如下:
|-----------------------------|
| v
1 --> 1' --> 2 --> 2' --> 3 --> 3' --> 4 --> 4'
| ^
|----------------------|
因为我们只是简单的复制了random指针,所以新的节点的random指向的仍然是老的节点,譬如上面的1和1'都是指向的3。
调整新的节点的random指针,对于上面例子来说,我们需要将1'的random指向3',其实也就是原先random指针的next节点。
|------------------------------|
| v
1 --> 1' --> 2 --> 2' --> 3 --> 3' --> 4 --> 4'
| ^
|----------------------------|
最后,拆分链表,就可以得到深拷贝的链表了。
【参考答案】
Lintcode375 Clone Binary Tree solution 题解的更多相关文章
- [LeetCode] Binary Tree Postorder题解
		Binary Tree Postorder Given a binary tree, return the postorder traversal of its nodes' values. For ... 
- 375. Clone Binary Tree【LintCode java】
		Description For the given binary tree, return a deep copy of it. Example Given a binary tree: 1 / \ ... 
- Leetcode ——Lowest Common Ancestor of a Binary Tree
		Question Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. ... 
- Leetcode-Construct Binary Tree from inorder and postorder travesal
		Given inorder and postorder traversal of a tree, construct the binary tree. Solution: /** * Definiti ... 
- 【LeetCode】105 & 106 Construct Binary Tree from (Preorder and Inorder)  || (Inorder and Postorder)Traversal
		Description: Given arrays recording 'Preorder and Inorder' Traversal (Problem 105) or 'Inorder and ... 
- 算法与数据结构基础 - 二叉树(Binary Tree)
		二叉树基础 满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树.右子树, 左右子树节点同样最多有两个子树. 二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如Leet ... 
- 110. Balanced Binary Tree - LeetCode
		Question 110. Balanced Binary Tree Solution 题目大意:判断一个二叉树是不是平衡二叉树 思路:定义个boolean来记录每个子节点是否平衡 Java实现: p ... 
- 637. Average of Levels in Binary Tree - LeetCode
		Question 637. Average of Levels in Binary Tree Solution 思路:定义一个map,层数作为key,value保存每层的元素个数和所有元素的和,遍历这 ... 
- 【题解】【BT】【Leetcode】Binary Tree Preorder/Inorder/Postorder   (Iterative Solution)
		[Inorder Traversal] Given a binary tree, return the inorder traversal of its nodes' values. For exam ... 
随机推荐
- 图解script的三种加载方式 异步加载顺序
			摘录如下: 可以很清晰的看出: <script>: 脚本的获取和执行是同步的.此过程中页面被阻塞,停止解析. <script defer = "defer"> ... 
- oracle10g 基于linux6安装问题收集
			1.[oracle@rsyslogserver database]$ dbca -silent -responseFile /home/oracle/database/dbca.rsp No comm ... 
- java基础--封装
			封 装(面向对象特征之一):是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处:将变化隔离:便于使用:提高重用性:安全性. 封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共 ... 
- [poj3107]Godfather_树形dp_树的重心
			Godfather poj-3107 题目大意:求树的重心裸题. 注释:n<=50000. 想法:我们尝试用树形dp求树的重心,关于树的重心的定义在题目中给的很明确.关于这道题,我们邻接矩阵存不 ... 
- 使用Java编译思想
			1.Java常见的注释有哪些,语法是怎样的? 1)单行注释用//表示,编译器看到//会忽略该行//后的所文本 2)多行注释/* */表示,编译器看到/*时会搜索接下来的*/,忽略掉/* */之间的文本 ... 
- Struct_2路径问题
			今天在自学那个Struct2的知识点的时候,发现那个相对路径和绝对路径有点遗忘.特地去看了视频还有在百度上查了一些资料.我觉得这个路径问题对于我这个初学者来说还是有点容易遗忘的.所以,今天就添加这个新 ... 
- 在linux环境下安装JDK并配置环境变量
			操作步骤如下 1.根据linux服务器的系统版本在官网下载相应linux版本JDK(32位下载x86,64位下载x64) 2.通过远程连接工具(filezilla)将下载好的JDK上传至linux服务 ... 
- AWK读书笔记
			1.awk 'parttern {action}' filename 从文件中逐行读取并匹配parttern,若匹配成功执行action否则读取下一行. parttern和action都可选,若省略p ... 
- centos 6.5安装并配置mysql
			折腾了半天终于把mysql安装并配置好了,以下是安装步骤和遇到问题的解决方式 1.查看机器上是否已经安装了mysql或其相关项 # yum list installed | grep mysql如果安 ... 
- Windows Powershell脚本执行
			在cmd下执行powershell进入shell模式: 变量定义:$i = 10 $a = ifconfig | findstr "192" Windows下的命令都可以执行如: ... 
