python leetcode 138. Copy List with Random Pointer
阿新 • • 發佈:2018-12-14
考察對連結串列的操作,注意要把原連結串列恢復原樣
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