逆置链表是指将一个链表中的元素顺序颠倒过来,下面是一个详细的步骤,使用C语言实现逆置链表:
十多年的涪城网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整涪城建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“涪城网站设计”,“涪城网站推广”以来,每个客户项目都认真落实执行。
1、定义链表节点结构体:
struct ListNode { int val; // 节点的值 struct ListNode *next; // 指向下一个节点的指针 };
2、创建一个新的空链表头节点:
struct ListNode* reverseList(struct ListNode* head) { // 创建一个新的空链表头节点 struct ListNode* newHead = NULL; // ... }
3、遍历原链表,将每个节点插入到新链表的头部:
struct ListNode* reverseList(struct ListNode* head) { // 创建一个新的空链表头节点 struct ListNode* newHead = NULL; // 遍历原链表,将每个节点插入到新链表的头部 while (head != NULL) { // 保存当前节点的下一个节点指针 struct ListNode* next = head>next; // 将当前节点插入到新链表的头部 head>next = newHead; // 更新新链表头节点为当前节点 newHead = head; // 移动到下一个节点 head = next; } // 返回新链表的头节点 return newHead; }
4、完整代码示例:
#include#include struct ListNode { int val; // 节点的值 struct ListNode *next; // 指向下一个节点的指针 }; // 创建新的节点并初始化值和指针域为NULL struct ListNode* createNode(int val) { struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode)); newNode>val = val; newNode>next = NULL; return newNode; } // 逆置链表函数实现 struct ListNode* reverseList(struct ListNode* head) { // 创建一个新的空链表头节点 struct ListNode* newHead = NULL; // 遍历原链表,将每个节点插入到新链表的头部 while (head != NULL) { // 保存当前节点的下一个节点指针 struct ListNode* next = head>next; // 将当前节点插入到新链表的头部 head>next = newHead; // 更新新链表头节点为当前节点 newHead = head; // 移动到下一个节点 head = next; } // 返回新链表的头节点 return newHead; } // 打印链表函数实现(用于测试) void printList(struct ListNode* head) { struct ListNode* current = head; while (current != NULL) { printf("%d ", current>val); // 打印当前节点的值 current = current>next; // 移动到下一个节点 } printf(" "); // 换行符,使输出更清晰可读 } int main() { // 创建一个包含5个节点的链表:1 > 2 > 3 > 4 > 5 > NULL struct ListNode* head = createNode(1); // 创建头节点并赋值为1,指针域为NULL(初始时) head>next = createNode(2); // 创建第二个节点并赋值为2,指针域指向头节点(初始时) head>next>next = createNode(3); // 创建第三个节点并赋值为3,指针域指向第二个节点(初始时)
网站标题:c语言怎么逆置链表
文章地址:http://www.gawzjz.com/qtweb2/news12/18462.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联