题目描述:
题解:参考剑指 Offer 35. 复杂链表的复制_大白能的博客-CSDN博客
1.先为链表中每个节点创建一个复制节点,此时只复制节点值。
2.创建random关系,指向原random节点之后的复制节点。
3.拆分完成节点复制后的链表。
class Solution(object): def copyRandomList(self, head): if head==None: return None cur = head while cur: copynode = Node(cur.val) copynode.next = cur.next cur.next = copynode cur = copynode.next cur = head while cur: if cur.random!=None: cur.next.random = cur.random.next cur = cur.next.next cur = head copyhead = head.next copycur = copyhead while cur: cur.next = cur.next.next cur = cur.next if copycur.next: copycur.next = copycur.next.next copycur = copycur.next return copyhead