如何拷贝特殊链表
来源:互联网 发布:mac pro 网速慢 台湾 编辑:程序博客网 时间:2024/06/06 12:48
有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
思路:
拷贝pNext指针非常容易,所以题目的难点是如何拷贝pRand指针。
假设原来链表为A1 -> A2 ->... -> An,新拷贝链表是B1 -> B2 ->...-> Bn。
为了能够快速的找到pRand指向的节点,并把对应的关系拷贝到B中。我们可以将两个链表合并成
A1 -> B1 -> A2 -> B2 -> ... -> An -> Bn。
从A1节点出发,很容易找到A1的pRand指向的节点Ax,然后也就找到了Bx,将B1的pRand指向Bx也就完成了B1节点pRand的拷贝。依次类推。
当所有节点的pRand都拷贝完成后,再将合并链表分成两个链表就可以了。
原文链接: http://hi.baidu.com/mianshiti/blog/item/bef194b44cc7ddff31add18c.html
- 如何拷贝特殊链表
- 谷歌面试题:如何拷贝特殊链表
- 有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
- 复杂链表的复制(注意深拷贝和浅拷贝的区别)(特殊的双向链表)
- 特殊列表拷贝
- 深拷贝链表
- 拷贝表(拷贝数据)
- 如何插入特殊字符
- 如何实现深度拷贝?
- 如何批量拷贝文件
- memcpy如何优化拷贝
- 如何拷贝hard link
- c++::如何防拷贝~
- 拷贝函数如何写
- 如何进行字符串拷贝
- 链表的特殊查找
- 链表的深拷贝
- SQL语句:如何向表中插入特殊字符?
- ActionScript3.0里颜色渐变填充
- 这题有解吗?
- 关于HTML动态生成热点map,area的两个解决办法
- 单向链表中,如何在给定节点前快速插入一个节点?
- 树言树语:电影盗版怎样来?
- 如何拷贝特殊链表
- fedora 2.6.34.1 "VolGroup00" not found 问题的解决(花了两天时间)
- poj 2833 The Average
- HDU 1788(数论,求最小公倍数)
- Eclipse插件安装
- 人脸识别的多线程版
- Corrupt JPEG data: premature end of data segment
- 当回忆已成往事-----我的诗
- Cannot create children for a parent that is in a different thread