复杂链表的复制
来源:互联网 发布:rip的udp端口号是 编辑:程序博客网 时间:2024/06/04 19:41
复杂链表:除了有一个指向下一个节点的next指针外,还有一个指向随机节点的random指针
typedef int DataType;typedef struct ComplexNode{ DataType _data; // 数据 struct ComplexNode * _next; // 指向下一个节点的指针 struct ComplexNode * _random; // 指向随机节点(可以是链表中的任意节点 or 空)}ComplexNode,*pComplexNode;pComplexNode CreateComplexNode(DataType d){ pComplexNode newNode = (pComplexNode)malloc(sizeof(ComplexNode)); if (newNode == NULL) { perror("malloc"); return NULL; } newNode->_data = d; newNode->_next = NULL; newNode->_random = NULL;}pComplexNode ChoneComplexlist(pComplexNode head){ pComplexNode cur = head; pComplexNode tmp = NULL; pComplexNode copy = NULL; pComplexNode tail = NULL; while (cur) { pComplexNode newNode = CreateComplexNode(cur->_data); tmp = cur; cur = cur->_next; newNode->_next = cur; tmp->_next = newNode; } cur = head; while (cur) { cur->_next->_random = cur->_random->_next; cur = cur->_next->_next; } cur = head; copy = cur->_next; tail = copy; while (tail->_next) { tail->_next = tail->_next->_next; cur->_next = tail->_next; cur = cur->_next; tail = tail->_next; } cur->_next = NULL; return copy;}
阅读全文
0 0
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复制复杂的链表
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 手工编译一个ndk程序
- redux初学笔记
- LeetCode-538 Convert BST to Greater Tree
- Android 5.1 property属性系统分析
- 投影矩阵与最小二乘的背后联系
- 复杂链表的复制
- 83. Remove Duplicates from Sorted List
- 【JS】【个人学习小记】获取并判断浏览器信息
- FZU -- 2282 和 DHU -- 2049 【简单错排 + 组合数学】
- STC89C51RC/ED+ 系列单片机命名规则
- 面向对象-1封装
- Windows apache虚拟主机配置
- 使用GitHub Pages搭建个人博客
- 深度冲突及W缓冲