leetcode 149: Copy List with Random Pointer
来源:互联网 发布:科学计算 python 编辑:程序博客网 时间:2024/06/13 03:57
Copy List with Random Pointer
Total Accepted: 12884 Total Submissions: 56931A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.
Return a deep copy of the list.
w/o extra space.
/** * 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 { public RandomListNode copyRandomList(RandomListNode head) { if(head == null) return null; RandomListNode p = head; while(p!=null) { RandomListNode np = new RandomListNode(p.label); np.next = p.next; p.next = np; p = np.next; } p = head; while(p!=null) { p.next.random = p.random==null ? null : p.random.next; p = p.next.next; } RandomListNode nhead = head.next; p = head; RandomListNode q = nhead; while(p!=null) { // q.next !=null won't work, since it won't deal with one node situation. p.next = q.next; if(q.next!=null) q.next = q.next.next; p = p.next; q = q.next; } return nhead; }}
w/ extra space.
/** * 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 { public RandomListNode copyRandomList(RandomListNode head) { HashMap<RandomListNode, RandomListNode> map = new HashMap<RandomListNode, RandomListNode>(); RandomListNode p = head; while(p != null) { RandomListNode newp = new RandomListNode(p.label); map.put(p, newp); p = p.next; } // RandomListNode newHead = map.get(head); p = head; while(p!=null) { RandomListNode q = map.get(p); q.next = map.get( p.next ); q.random = map.get(p.random); p = p.next; } return map.get(head); }}
0 0
- leetcode 149: Copy List with Random Pointer
- [leetcode][list] Copy List with Random Pointer
- Leetcode: Copy List with Random Pointer
- LeetCode: Copy List with Random Pointer
- [LeetCode] Copy List with Random Pointer
- [leetcode]Copy List with Random Pointer
- LeetCode:Copy List with Random Pointer
- leetcode Copy List with Random Pointer
- LeetCode:Copy List with Random Pointer
- LeetCode题解:Copy List with Random Pointer
- [LeetCode]Copy List with Random Pointer
- leetcode Copy List with Random Pointer
- leetcode-Copy List with Random Pointer
- Leetcode: Copy List with Random Pointer
- LeetCode | Copy List with Random Pointer
- [LeetCode] Copy List with Random Pointer
- LeetCode OJ:Copy List with Random Pointer
- LeetCode(138)Copy List with Random Pointer
- achartengine画出动态折线图 zz
- apache和php的一些配置
- mysql中where or cast
- 横向滑动HorizontalScrollView+Gridview
- 怎么样进行拓扑排序
- leetcode 149: Copy List with Random Pointer
- 用poi导出Excel
- QT子线程与主线程的信号槽通信
- Linux C语言编程学习材料
- PRML线性模型小结
- 自定义下拉框
- HDU 4101 Ali and Baba
- №03 函数
- 微信认证新增公对公账户打款支付审核费用