A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.
Return a deep copy of the list.
Solution
# 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): return self.copyRandomListRec(head, {}) def copyRandomListRec(self, head, used): if head == None: return None if head in used: return used[head] node = RandomListNode(head.label) used[head] = node node.next = self.copyRandomListRec(head.next, used) node.random = self.copyRandomListRec(head.random, used) return node
No comments :
Post a Comment