题目
思路
1.复制结点
2.复制random
3.拆解链表
代码
"""
Definition for singly-linked list with a random pointer.
class RandomListNode:
def __init__(self, x):
self.label = x
self.next = None
self.random = None
"""
class Solution:
# @param head: A RandomListNode
# @return: A RandomListNode
def copyRandomList(self, head):
# write your code here
new_head = None
if not head: return None
node = head
while node:
new_node = RandomListNode(node.label)
new_node.next = node.next
node.next = new_node
node = node.next.next
node = head
while node:
if node.random:
node.next.random = node.random.next
node = node.next.next
new_head = head.next
node = new_head
while node and node.next:
node.next = node.next.next
node = node.next
node.next = None
return new_head