gpt4 book ai didi

c - 反转列表迭代逻辑错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:15 24 4
gpt4 key购买 nike

在这里,我尝试迭代地反转列表。但问题是列表有多大说 3->2->4->NULL,最后它变成 3->NULL 即只有一个元素的列表。请告诉代码中的问题是什么。

    struct node *reverselist(struct node *head)
{
struct node *list=head;
if(head==NULL)
{
printf("\nThe list is empty\n");
return head;
}
if(head->next==NULL)
{
printf("\nThe list has only one element\n");
return head;
}
struct node *cur=head;
struct node *new=head->next;
while(cur->next!=NULL)
{
cur->next=new->next;
new->next=cur;
new=cur->next;
}
return list;
}

最佳答案

您的逻辑是错误的 - 指针 new 正在正确更新,但 cur 已修复。

与其尝试这个

struct node *reverselist(struct node *head)
{
struct node *temp;
struct node *newHead = NULL;
struct node *curNode = head;

while(curNode != NULL) {
temp = curNode->next;
curNode->next = newHead;
newHead = curNode;
curNode = temp;
}

return newHead;
}

关于c - 反转列表迭代逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17022263/

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