gpt4 book ai didi

c++ - 反向链表算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:36 24 4
gpt4 key购买 nike

我做了一个算法来反转我的链表。原始列表看起来像 7 5 6 我想将其反转为 5 6 7 。但是在反向函数后打印链表时,我只看到 5

NodeType * temp = start;
int dataHolder[length] = {0};
int runTime = length - 1;

for(int i = 0; i<length; i++){
if(temp->next == NULL){
break;
}

dataHolder[runTime] = temp->data;
temp = temp->next;
runTime--;
}

for(int j = 0; j<length; j++){
if(start->next == NULL){
break;
}

start->data = dataHolder[j];
start = start->next;
}

最佳答案

您的算法不起作用,因为在第一个循环中前 n-1 个节点中的数据被复制到数组 dataHolder然后在第二个循环中,将数组以与检索数组相同的顺序复制到链表中。

此外,您正在编辑“开始”变量,这是对列表开头的唯一引用

在第二个循环结束时开始指向列表中的倒数第二个节点

并且您使用相同的“开始”变量显示链表

为您输入的数据
7->5->6
处理第一个循环后在数据持有者中
7 5
将其复制到链接列表中。链表现在是
7->5
但开始指向 5

使用 start 显示链表很明显5只会被打印

关于c++ - 反向链表算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44701139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com