1 Star 0 Fork 0

李勇震/c语言每日练习

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
test_8_3 1.07 KB
一键复制 编辑 原始数据 按行查看 历史
李勇震 提交于 2023-08-03 14:45 . add test_8_3.
struct Node* copyRandomList(struct Node* head) {
struct Node* cur = head;
//在每个节点后面复制节点
while(cur)
{
struct Node* copy = (struct Node*)malloc(sizeof(struct Node));
copy->val = cur->val;
copy->next = cur->next;
cur->next = copy;
cur = copy->next;
}
cur = head;
//复制random
while(cur)
{
struct Node* copy = cur->next;
if(cur->random == NULL)
{
copy->random = NULL;
}
else
{
copy->random = cur->random->next;
}
cur = copy->next;
}
//分离两个链表
cur = head;
struct Node* newHead = NULL;
struct Node* newTail = NULL;
while(cur)
{
struct Node* copy = cur->next;
if(newHead == NULL)
{
newHead = newTail = copy;
}
else{
newTail->next = copy;
newTail = newTail->next;
}
cur = copy->next;
}
return newHead;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/liyongzhen2004/2022.10.24.git
git@gitee.com:liyongzhen2004/2022.10.24.git
liyongzhen2004
2022.10.24
c语言每日练习
master

搜索帮助