gpt4 book ai didi

c - 反转链表并打印结果

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:05 26 4
gpt4 key购买 nike

我正在编写一个函数,它接受一个链表来反转元素,然后打印结果。我运行它时无法正常工作;它只打印第一个值。

typedef struct node {
ElemType val;
struct node *next;
} NODE;


struct list_struct {
NODE *front;
NODE *back;
};

//reverse elements in list
void lst_reverse(LIST *l) {
NODE *p = l->front;
NODE *prev = NULL;
NODE *current = p;
NODE *next;

while (current != NULL) {
next = current->next;
current->next = prev;
prev = current;
current = next;
}
p = prev;

lst_print(l);
}

最佳答案

赋值 p = prev 不会更新您的 LIST 中的前端指针。当您调用 lst_print(l) 时,您是从列表的旧前面开始,这是新的后面,因此它会在一次迭代后停止。

相反,您应该使用以下内容更新列表的前面(和后面):

l->front = prev;
l->back = p;

关于c - 反转链表并打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27288334/

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