题目链接
英文链接:https://leetcode.com/problems/copy-list-with-random-pointer/
中文链接:https://leetcode-cn.com/problems/copy-list-with-random-pointer/
题目详述
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。
要求返回这个链表的深拷贝。
示例:
1 | 输入: |
提示:
你必须返回给定头的拷贝作为对克隆列表的引用。
题目详解
整个复制过程分为三个步骤:
- 复制每个结点并插入到它的后面。
- 更改新建结点的 random 指针。
- 分离得到原链表和新链表。
时间复杂度为 O(n)
,空间复杂度为 O(1)
。
1 | public class LeetCode_00138 { |