美文网首页
Lintcode375 Clone Binary Tree so

Lintcode375 Clone Binary Tree so

作者: 程风破浪会有时 | 来源:发表于2017-12-13 23:29 被阅读0次

【题目描述】

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'

          |                                  ^

          |----------------------------|

最后,拆分链表,就可以得到深拷贝的链表了。

【参考答案】

www.jiuzhang.com/solutions/clone-binary-tree/

相关文章

网友评论

      本文标题:Lintcode375 Clone Binary Tree so

      本文链接:https://www.haomeiwen.com/subject/rgdrbxtx.html