题目描述
请实现copyRandomList函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个next指针指向下一个节点,还有一个random指针指向链表中的任意节点或者null。
示例1:
1 | 输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]] |
示例2:
1 | 输入:head = [[1,1],[2,1]] |
示例3:
1 | 输入:head = [[3,null],[3,0],[3,null]] |
示例4:
1 | 输入:head = [] |
提示:
-10000 <= Node.val <= 10000Node.random为空(null)或指向链表中的节点- 节点数目不超过1000
思路
- 第一次遍历链表,在原节点的后面复制一个一样的节点
- 第二次遍历链表,为复制的节点设置对应的random指针
- 第三次遍历链表,将复制的节点从链表中分离出来
代码
1 | /* |
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。