复杂链表的复制(结点包含随机指针)
来源:互联网 发布:2016年中国老龄化数据 编辑:程序博客网 时间:2024/06/05 17:19
题目描述
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。
思路:
1、在原链表上面复制,新节点连到相同的老结点后面;
2、复制随机指针,老结点的随机指针(老结点后面的结点的随机指针指向,老结点随机指针所指节点的下一个结点)
3、将两个链表分离,返回头指针;
代码如下:
RandomListNode* Clone(RandomListNode* pHead){ if(pHead == NULL)return NULL; RandomListNode* currNode = pHead; while(currNode){ RandomListNode* node = new RandomListNode(currNode->label); node->next = currNode->next; currNode->next = node; currNode = node->next; } currNode = pHead; while(currNode){ RandomListNode* node = currNode->next; if(currNode->random){ node->random = currNode->random; } currNode = node->next; } RandomListNode* pHead_Clone = pHead->next; RandomListNode* p; currNode = pHead; while(currNode->next){ p = currNode->next; currNode->next = p->next; currNode = p; } return pHead_Clone; }
0 0
- 复杂链表的复制(结点包含随机指针)
- LintCode(M) 复制带随机指针的复杂链表
- 复杂链表的复制(复制含有随机指针节点的链表)
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带有随机指针的链表
- 复制含有随机指针的链表
- LintCode(105) 复制带随机指针的链表
- lintcode 复制带随机指针的链表(105)
- 带随机指针的链表复制问题
- M1: 复制带随机指针的链表
- 复制一个带随机指针的链表
- LintCode复制带随机指针的链表
- ChangeKeyBoad Caps ctrl
- 网页页面 自动刷新的3种代码
- sencha 报错问题汇总
- 客户端关闭连接服务器端没反应
- JAVA Key=Key模型(一对一双向唯一)
- 复杂链表的复制(结点包含随机指针)
- 经典算法:X进制数转换为Y进制数
- oc获取相册源码
- 1. java简介、开发环境搭建、第一个程序
- android模糊效果blur
- 双向链表的基本操作-数据结构
- Android无法安装包问题
- 3.2.5.4 分析黑名单
- 关于硬盘UUID更改及显示的方法