138-Copy-List-with-Random-Pointer

原题链接

0x0 题目详情

给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的 深拷贝。 我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示: val:一个表示 Node.val 的整数。 random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为 null 。

测试用例:

复制随机节点

输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]] 输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]

0x1 解题思路

这道题一共三个步骤:

  • 原地复制链表

  • 设置随机指针

  • 分裂链表

写起来也没啥好注意的。

0x2 解题思路

0x3 课后总结

这道题看着麻烦,写起来超级简单,采用原地复制,然后分裂即可。链表问题确实不难。

Last updated

Was this helpful?