复杂链表的复制【每日一题】

来源:互联网 发布:光盘数据恢复软件 编辑:程序博客网 时间:2024/06/06 04:59

所谓复杂链表是指:节点域中除了有数据域和指向下一个节点的指针,还有一个指向任意节点的指针
链表结构:

struct ComplexList{    DataType _data;    ComplexList* _pNext;    ComplexList* _pRadom;}ComplexList*, pComplexList;

这里写图片描述
在不使用辅助空间的情况下实现O(n)的时间效率,解决方法分为三步:
(1)根据原始链表的每个节点N创建对应的N’。再把N’连接在N后面
这里写图片描述
(2)设置赋值出来的节点的_pRadom。假设原始链表上的N的_pRadom指向S节点,那么其对应复制出来的N’是N的_pNext指向节点,同样S’也是S的_pNext指向的节点
这里写图片描述
(3)把这个长链表拆分成两个链表:奇数位置的节点用_pNext链接起来的就是原始链表,把偶数位置的节点用_pNext链接起来就是复制出来的链表。
这里写图片描述
最后把上述三步合起来就是复制复杂链表的完整过程。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 长安之星2代大灯高不聚光怎么办 被电动车撞了人跑了怎么办 车被电动车撞了对方跑了怎么办 房子卖了户口没地方迁怎么办 酷派大神f2开不开机怎么办 酷派手机玩游戏竖屏怎么办 身上起红疙瘩很痒怎么办越挠越多 苹果6s指纹解锁坏了怎么办 案子结了网上追逃的怎么办 贷款买的手机不还了会怎么办 支付宝手机号没用了登陆不了怎么办 支付宝绑定的手机号注销了怎么办 考勤机进水了不能识别指纹怎么办? 网商银行人脸识别失败怎么办 电脑网页上的字变小了怎么办 把光驱换成固态硬盘后不识别怎么办 相机内存卡电脑读不出来怎么办 sd卡在电脑上无法格式化怎么办 内存卡突然读不出来了怎么办 怀孕两个月胎儿死在腹中怎么办 香港公司在大陆卖地皮资金怎么办 结婚证上的身份证号码错了怎么办 身份证快过期了人在外地怎么办 邮政电话银行登录密码忘记了怎么办 如果欠了3w不敢和家里说怎么办 大四学生欠了3w该怎么办 房子付了首付贷款贷不下来怎么办 浙江嵊泗人在金华丢了身份证怎么办 一证5号够了怎么办新卡 微信号被盗实名认证是自己的怎么办 苹果微信登录显示被盗风险怎么办 在诈骗公司上班被公安抓了怎么办 在国外护照不小心撕坏了怎么办 在俄罗斯护照超期拉黑应该怎么办 俄罗斯五年定居护照丢了怎么办 百家号文章质量分一直在下降怎么办 如果在韩国把护照弄丢了怎么办 坐亲戚的车出了车祸受伤怎么办 出了车祸受伤对方不拿医药费怎么办 如果找你买保险的不在了保单怎么办 赴美生子父母一方是绿卡怎么办