首页 > 代码库 > Copy List with Random Pointer
Copy List with Random Pointer
题目
A 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.
方法
public RandomListNode copyRandomList(RandomListNode head) { RandomListNode newHead = null; if (head != null) { RandomListNode cur = head; while (cur != null) { RandomListNode temp = new RandomListNode(cur.label); temp.next = cur.next; cur.next = temp; cur = cur.next.next; } cur = head; RandomListNode newCur = head.next; while(cur != null) { if (cur.random != null) { newCur.random = cur.random.next; } cur = cur.next.next; if (cur != null) { newCur = newCur.next.next; } } cur = head; newHead = cur.next; newCur = newHead; while (cur != null) { cur.next = newCur.next; cur = newCur.next; if (cur != null) { newCur.next = cur.next; newCur = cur.next; } else { newCur.next = null; } } } return newHead; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。