c - 反转链表中的指针

标签 c

大家好,请帮我编写一个程序来反转链表中的指针。例如 A->B->C->D 将变为 A<-B<-C<-D 而不使用额外的链表。

编辑: ------ 好吧,伙计们,我一直在寻找这个问题的解决方案,这里是代码,以防你想要它:

    void reverse_list(){
    struct node *next, *current,*previous;
    previous = NULL; 
    current =head; 
    while(current != NULL){
    next = current->next; 
    current->next = previous; 
    previous=current; 
    current = next; 
    }
    head = previous; 
    }

最佳答案

您可以将列表视为堆栈。然后,您可以通过“弹出”节点并将它们“插入”新列表来轻松反转这样的列表。

上面的操作可以是破坏性的(销毁旧列表)和非破坏性的(创建新列表作为原始列表的反向副本)。

关于c - 反转链表中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56400418/

相关文章:

c - 有人知道 atolf c 函数吗?

C:将 stdin、stdout 重定向到管道

c - 如何在 Windows 上用 C 语言从另一个程序启动一个独立的程序(在单独的控制台窗口中)?

c - 提高 C 循环缓冲区效率

c - 使用 fread 从文本文件读取时获取 '�' 或 '@' 符号

C++ 预处理器 __VA_ARGS__ 参数数量

c - 使用 strcpy 和等同字符串地址有什么区别?

c - FFmpeg 如何将视频写入文件

c++ - 取消引用多级指针

比较各种 pthread 结构的性能