单链表逆序
来源:互联网 发布:小说美利坚仓储淘宝王 编辑:程序博客网 时间:2024/04/29 23:27
题目:已知单向链表的头结点head,写一个函数把这个链表逆序
假设需要逆序的单链表为:
则逆序以后的链表为:
从图中我们可以看出我们需要做的核心操作就是
p和q,如果p是q的前驱,那么逆序后p就是q的后继
思路:遍历单链表,把当前指针指向的节点指针赋给其后继节点的next指针域;
Status ListReverse(LinkList L)
{
//如果指向头结点的指针为空,说明此链表不存在,如果指向第一个节点的指针为空,说明链表空,返回
if(L==null||L->next==null)
{
return L;
}
//设置三个指针
LinkList current,pnext,prev;//分别是 当前指针指向的节点,当前指向节点的下一个节点指针
current=L->next;//设置当前指针指向的节点是链表的第一个节点
current->next=null;//根据图可知,链表逆序后第一个节点为最后一个节点,应该指向null
pnext=current->next;//保存当前指向节点的下一个节点(第二个节点)
//开始从第二个节点遍历
while(pnext)
{
//如果节点存在
//保存当前节点后继
prev=pnext;
//把其原来的前驱节点变成其后继(把其前驱节点的指针赋给其next指针域)
pnext->next=current;
//更新
current=pnext;
pnext=prev;
}
L->next=current;
return L;
}
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 【单链表】逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- 单链表逆序
- Linux C 定时器 篇(三)
- 罗马帝国的异常灭亡
- vlc activex api
- socket编程基于tcp
- 服务器端验证表单 小结
- 单链表逆序
- 基于udp的socket编程
- 报表开发 相关工具 插件
- 【转载】性能调优攻略
- &a[100]可以使用
- 线程实例的应用
- 数据结构与算法分析学习笔记三-循环队列C语言实现
- Dell笔记本电脑INSPIRON系列如何取消Caps Lock大小写切换时延迟
- 生成树STP配置 ------冗余的备份链路被自动激活