# -*- coding:utf-8 -*-
# class RandomListNode:
# def __init__(self, x):
# self.label = x
# self.next = None
# self.random = None
class Solution:
# 返回 RandomListNode
def Clone(self, pHead):
# write code here
if not pHead:
return None
#copy变长一倍
p = pHead
while p:
toClone = RandomListNode(p.label)
toClone.next = p.next
p.next = toClone
p = toClone.next
#复制random节点
p = pHead
while p:
clone = p.next
if p.random:
clone.random = p.random.next
p = clone.next
#按照奇偶拆开
odd = pHead
even = pHead.next
even_save = even
while even and even.next:
odd.next = even.next
odd = odd.next
even.next = odd.next
even = even.next
odd.next = None #奇数后面会有个小问题
return even_save