
复杂链表的复制
发布日期:2021-05-07 21:08:11
浏览次数:19
分类:精选文章
本文共 1455 字,大约阅读时间需要 4 分钟。
《剑指offer》刷题笔记7
-
学习内容
复杂链表的复制 (1)思路 逐个复制结点的值域和next指针域,并把复制的结点放在被复制的结点后面。 复制当前结点的random域,付给下一结点。 编号为奇数的结点为原链表结点,剩下的是复制出的新链表节点。 (2)代码 /* struct RandomListNode { int label; struct RandomListNode next, random; RandomListNode(int x) : label(x), next(NULL), random(NULL) { } }; / class Solution { public: //第一步,复制复杂指针的label和next void CloneNodes(RandomListNode pHead){ RandomListNode pNode = pHead; while(pNode != NULL){ RandomListNode pCloned = new RandomListNode(0); pCloned->label = pNode->label; pCloned->next = pNode->next; pCloned->random = NULL;pNode->next = pCloned; pNode = pCloned->next;}
}
//第二步,处理复杂指针的random
void ConnectSiblingNodes(RandomListNode* pHead){ RandomListNode* pNode = pHead; while(pNode != NULL){ RandomListNode* pCloned = pNode->next; if(pNode->random != NULL){ pCloned->random = pNode->random->next; } pNode = pCloned->next; } }//第三步,拆分复杂指针
RandomListNode* ReconnectNodes(RandomListNode* pHead){ RandomListNode* pNode = pHead; RandomListNode* pClonedHead = NULL; RandomListNode* pClonedNode = NULL;if(pNode != NULL){ pClonedHead = pClonedNode = pNode->next; pNode->next = pClonedNode->next; pNode = pNode->next;}while(pNode != NULL){ pClonedNode->next = pNode->next; pClonedNode = pClonedNode->next; pNode->next = pClonedNode->next; pNode = pNode->next;}return pClonedHead;
}
RandomListNode* Clone(RandomListNode* pHead)
{ CloneNodes(pHead); ConnectSiblingNodes(pHead); return ReconnectNodes(pHead); } }; -
参考网站
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月23日 21时03分07秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
apache虚拟主机配置
2021-05-09
PHP官方网站及PHP手册
2021-05-09
mcrypt加密以及解密过程
2021-05-09
go等待N个线程完成操作总结
2021-05-09
ReactJs入门教程-精华版
2021-05-09
Python 之网络式编程
2021-05-09
MySql5.5安装步骤及MySql_Front视图配置
2021-05-09
Java内存模型(JMM)
2021-05-09
AQS相关
2021-05-09
WCF学习之旅—第三个示例之一(二十七)
2021-05-09
java ThreadPoolExecutor初探
2021-05-09
快速指数算法
2021-05-09
python去除字符串中的特殊字符(爬虫存储数据时会遇到不能作为文件名的字符串)
2021-05-09
SpringCloud微服务(03):Hystrix组件,实现服务熔断
2021-05-09
Spring 框架基础(01):核心组件总结,基础环境搭建
2021-05-09
Cassandra数据建模
2021-05-09
Internet Explorer 10 专题上线
2021-05-09
云计算之路-阿里云上:0:25~0:40网络存储故障造成网站不能正常访问
2021-05-09