每天学习一算法【3】单链表翻转
来源:互联网 发布:淘宝宝贝上架技巧视频 编辑:程序博客网 时间:2024/05/27 14:12
每天学习一算法【3】单链表翻转
本文只说明一种方法。
例如链表 head->node1->node2->node3->node4->NULL;
翻转之后 head->node4->node3->node2->node1->NULL;
思路:
我们先定义三个节点:p,q,s;
其中,p是当前节点,s是下一个节点,q是上一个节点;
1.保存下一个节点,s = p->next;
2.把当前节点的下一个节点重新赋值为上一个节点,p->next = q;
3.现在,当前节点p要向下进行,当前节点也就变成了上一个节点,q = p;
4.把下一个节点赋给p,p = s;
void reverse(LinkList l){//head->1->2->3->4->...->NULL LinkList p = l->next;//p为当前节点 LinkList s = NULL;//下一个节点 LinkList q = NULL;//上一个节点 while(p != NULL){ s = p->next; p->next = q; q = p; p = s; } LinkList h = (LinkList)malloc(sizeof(Node)); h->next = q; print(h);}
完整代码戳这里;
0 0
- 每天学习一算法【3】单链表翻转
- 每天一算法(翻转句子中单词的顺序)
- [每天一题]翻转C-style 字符串
- 每天一算法
- 每天学习一算法系列(10)(输入一句英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开)
- 每天一道算法题(16)——翻转链表
- 每天一算法--冒泡排序
- java算法3~翻转字符串
- 【算法学习笔记】02.wikioi1205 单词翻转
- 算法学习-链表的部分翻转
- 算法学习-二叉树的翻转
- 和大神们学习每天一题(leetcode)-3Sum
- 每天一算法,每天一小歩——冒泡排序
- 每天学习一算法系列(8) (编程判断俩个链表是否相交)
- 每天学习一算法系列(11) (求二叉树中节点的最大距离)
- 每天学习一算法系列(24)(实现字符串左旋转的函数)
- 【每天一个算法】一、交换两个整数
- 每天一算法(字符串后移)
- Merge Intervals 这个应该叫合并间隙?
- 把数组排成最小的数
- 使用phpmailer发送邮件,且需要激活完整代码
- iOS开发:获取矩形渐变色的UIImage
- 《APP开发》APP规范实例-详细的UI设计方法
- 每天学习一算法【3】单链表翻转
- TCP与UDP的区别,以及它们各自的定义
- java中“集合”与“数组”转换
- 我的安卓路(一)之”第一天好好玩呦“
- UVa 1597 - Searching the Web(模拟)
- 从优化到再优化,最长公共子串
- 在Ubuntu下安装OpenCV
- 打开android手机的wifi热点
- 微信产品是否是泡沫的问题分析-微信泡沫.玖零云小熊分享