考察对链表的操作,注意要把原链表恢复原样
class Solution(object):
def copyRandomList(self, head):
"""
:type head: RandomListNode
:rtype: RandomListNode
"""
if not head:
return None
p=head
while p:
newtmp = RandomListNode(p.label)
newtmp.next=p.next
p.next=newtmp
p=p.next.next
p=head
while p:
if p.random:
p.next.random = p.random.next
p=p.next.next
newHead=head.next
p=head
newLN=newHead
while newLN.next:
p.next = newLN.next
p=p.next
newLN.next = p.next
newLN = newLN.next
p.next=None
newLN.next = None
return newHead