随机链表的深拷贝

1.题目

在这里插入图片描述
在这里插入图片描述
解题思路一:暴力求解,先创建新链表,然后把旧链表中的valnext指针给复制到新链表中,根据旧链表中的random指针所指向的旧链表中的val值找到所对应的节点,记录该节点的位置,就像数组一样,新链表中的random指针就指向新链表中同样的位置。但是这样有点复杂。
解题思路二:首先在旧链表中的每一个节点后创建一个新节点,在这里插入图片描述

并连接起来,在链接的过程中,新节点的val值等于前一个节点在这里插入图片描述
新节点的next指针指向前一个旧节点的next指针,新节点的random指针指向前一个旧节点的random指针的next指针,在这里插入图片描述
val为11的节点的前一个旧节点的random指针指向的是val为3的旧节点。因此,val为11的新节点的random指针指向的是val为3的旧节点的next指针,也就是val为3的新节点。
然后在重新把新节点拷贝成一个新的链表。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值