当前位置: 首页> 科技> IT业 > BM1反转链表[栈+头插法]

BM1反转链表[栈+头插法]

时间:2025/9/10 14:24:53来源:https://blog.csdn.net/yafeile/article/details/140954794 浏览次数:0次

题目要求如下:
在这里插入图片描述问题比较简单,就是将链表中的值进行反转即可。
一种比较简单的方式是使用栈+链表的方式来实现,下面是相应的代码:

#include <stdio.h>
#include <stdlib.h>
int arr[10001] = {0};
struct ListNode* ReverseList(struct ListNode* head ) {if (head == NULL) {return head;}int num = 0;struct ListNode* node;//遍历列表并入栈while ((head->next) != NULL) {arr[num] = head->val;head = head->next;num++;}node = head;arr[num] = head->val;struct ListNode* p;//使用头插法将链表的值反转for (int i = 0; i < num; i++) {p = (struct ListNode*)malloc(sizeof(struct ListNode));p->val = arr[i];p->next = node->next;node->next = p;}return node;
}

对于入栈,可以定义1个整数型的数组遍历链表将其值添加到数组中。再利用头插法一次将栈中的值添加到链表中并返回即可实现链表的反转效果。
下面是最终的效果:
在这里插入图片描述

关键字:BM1反转链表[栈+头插法]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: