单链表逆置

本文详细介绍了单链表逆置的算法思路,通过创建辅助节点和改变指针指向实现链表逆置,适用于链表操作的学习和实践。

单链表逆置思路:创建一个辅助结点(preNode),遍历过程中,把当前结点的指针域设置为preNode的地址值(实现链表指向逆置的关键一步)。后移curNode和preNode。。

#include <stdio.h>

#include <stdlib.h>

#define ITEM_NUM 10

typedef struct tagNode {

     int e;

     struct tagNode *next;

}Node;  

Node* LinkList_reverse(Node* head)

{

     Node *preNode,*curNode,*nextNode;  

     if(head==NULL) return NULL;//空链表

     if(head->next == NULL) return head;//仅一个元素  

     curNode = head;preNode=NULL;//初始化  

     while(curNode)

     {

         nextNode = curNode->next;//先记录下一个结点

         curNode->next = preNode;//改变链表方向(逆置)

         preNode = curNode;//将当前结点作为下一次循环的前一个结点

         curNode = nextNode;//向后推移一个结点

     }  

     return preNode;//当遍历完链表后curNode应该为空,此时preNode

就是逆置后链表头(head)  

}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值