1.题目
解题思路一:暴力求解,先创建新链表,然后把旧链表中的val
和next
指针给复制到新链表中,根据旧链表中的random
指针所指向的旧链表中的val
值找到所对应的节点,记录该节点的位置,就像数组一样,新链表中的random
指针就指向新链表中同样的位置。但是这样有点复杂。
解题思路二:首先在旧链表中的每一个节点后创建一个新节点,
并连接起来,在链接的过程中,新节点的val值等于前一个节点
新节点的next指针指向前一个旧节点的next指针,新节点的random指针指向前一个旧节点的random指针的next指针,
val为11的节点的前一个旧节点的random指针指向的是val为3的旧节点。因此,val为11的新节点的random指针指向的是val为3的旧节点的next指针,也就是val为3的新节点。
然后在重新把新节点拷贝成一个新的链表。