lc138.复制带随机指针的列表 Leetcode linkedList hashTable dfs bfs Jun 21, 2020 题目链接 此题与jz035.复杂链表的复制相同,在这里就放一下最优的代码。这个算法的时间复杂度是O(N),空间复杂度是O(1)。 """ # Definition for a Node. class Node: def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None): self.val = int(x) self.next = next self.random = random """ class Solution: def copyRandomList(self, head: 'Node') -> 'Node': if not head: return None cur = head while cur: new_node = Node(cur.val, None, None) new_node.next = cur.next cur.next = new_node cur = new_node.next cur = head while cur: cur.next.random = cur.random.next if cur.random else None cur = cur.next.next cur_old = head cur_new = new_head = head.next while cur_old: cur_old.next = cur_old.next.next cur_new.next = cur_new.next.next if cur_new.next else None cur_new = cur_new.next cur_old = cur_old.next return new_head PREVIOUSjz036.二叉搜索树与双向列表NEXTlc426.将二叉搜索树转化为排序的双向列表