105.Copy List with Random Pointer-复制带随机指针的链表(中等题)
来源:互联网 发布:加工中心常用编程代码 编辑:程序博客网 时间:2024/06/05 09:55
复制带随机指针的链表
题目
给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。
返回一个深拷贝的链表。挑战
可否使用O(1)的空间
题解
分别对Next指针和随机指针进行递归遍历。
/** * Definition for singly-linked list with a random pointer. * class RandomListNode { * int label; * RandomListNode next, random; * RandomListNode(int x) { this.label = x; } * }; */public class Solution { /** * @param head: The head of linked list with a random pointer. * @return: A new head of a deep copy of the list. */ public RandomListNode copyRandomList(RandomListNode head) { RandomListNode newHead = new RandomListNode(head.label); copynext(head,newHead); copyrandom(head,newHead); return newHead; } public void copynext(RandomListNode head,RandomListNode newHead) { if (head == null) { return ; } newHead.next = head.next == null?null:new RandomListNode(head.next.label); copynext(head.next,newHead.next); } public void copyrandom(RandomListNode head,RandomListNode newHead) { if (head == null) { return ; } newHead.random = head.random == null?null:new RandomListNode(head.random.label); copyrandom(head.next,newHead.next); }}
Last Update 2016.10.9
0 0
- 105.Copy List with Random Pointer-复制带随机指针的链表(中等题)
- Copy List with Random Pointer 带随机指针链表的复制
- [LintCode] 复制带随机指针的链表 Copy List with Random Pointer
- LeetCode OJ 之 Copy List with Random Pointer(复制含有随机指针的链表)
- Copy List with Random Pointer 复制有随机指针的链表@LeetCode
- Copy List with Random Pointer复制带有随机指针的链表
- LeetCode138 Copy List with Random Pointer(深度复制带有随机指针的链表) Java题解
- 【LeetCode】138.Copy List with Random Pointer 复制带有随机指针的链表
- Copy List with Random Pointer 带随机指针的链表的拷贝
- [LeetCode]—Copy List with Random Pointer 深度复制带“任意指针”的链表
- 【LeetCode-面试算法经典-Java实现】【143-Copy List with Random Pointer(有随机指针的链表复制)】
- LeetCode | Copy List with Random Pointer(赋值带有随机指针的链表)
- LeetCode之复制有random指针的链表Copy List with Random Pointer
- 附有随机结点指针的链表的深度拷贝 Copy List with Random Pointer
- [LeetCode]Copy List with Random Pointer &Clone Graph 复杂链表的复制&图的复制
- 138. Copy List with Random Pointer&复杂链表的复制
- LeetCode 138. Copy List with Random Pointer(拷贝随机指针)
- 【LeetCode-面试算法经典-Java实现】【138-Copy List with Random Pointer(拷贝有随机指针的单链表)】
- Subscriber class .NewsFragment and its super classes have no public methods
- ArcGIS Server9.3的瓦片数据迁移到ArcGIS Server10.3上
- regionprops统计被标记的区域的面积分布,显示区域总数。
- ubuntu安装nvidia官方驱动(安装CUDA7.5之后,找不到TITAN显卡的解决方法)
- JAVASE之Object
- 105.Copy List with Random Pointer-复制带随机指针的链表(中等题)
- Linux环境下的GCC工具链详解(二)
- LeetCode[173] Binary Search Tree Iterator
- [os]pkg 解包和打包
- layer弹出框
- 快速排序思想
- CentOS7下YUM安装与配置MySQL5.7
- 关于C#泛型接口协变和抗变的一些理解
- 设置cookie