数据结构——快慢指针法查找链表中间值
来源:互联网 发布:linux 777 什么权限 编辑:程序博客网 时间:2024/05/16 16:25
/* 头插法创建链表 打印输出链表内容 利用快慢指针法找出链表中间元素 链表内容为奇数个时,打印中间值 链表内容为偶数个时,打印中间两个值*/#include<stdio.h>typedef struct link{char data;struct link *next;}linklist;/*头插法创建链表,注意头插法刚好是逆序*/linklist *Create_List_Front(){linklist *head, *p;char ch;head = NULL;printf("依次输入字符('#'表示结束):\n");ch = getchar();while (ch != '#') {p = (linklist*)malloc(sizeof(linklist));p->data = ch;p->next = head;head = p;ch = getchar();}return head;}/*打印输出链表内容*/void link_print(linklist *L){linklist *p;p = L;while (p != NULL){printf("%c", p->data);p = p->next;}}int main() {linklist *fast, *low;fast = low = Create_List_Front();link_print(fast);/*快慢指针原理,快指针一次遍历两个,慢指针一次遍历一个,当快指针到达链表尾部时,慢指针刚好指在链表中间值*/while (fast->next != NULL) {if (fast->next->next != NULL){fast = fast->next->next;low = low->next;}else{fast = fast->next;printf("\n%c", low->next->data);}}printf("\n%c", low->data);}
阅读全文
2 0
- 数据结构——快慢指针法查找链表中间值
- 数据结构之快慢指针查找链表中间结点
- 【数据结构】单链表—求链表中间节点(只遍历一次链表)— 快慢指针
- 链表使用快慢指针求中间值
- 线性表(插入/清除数据/快慢指针查找中间数据)
- 链表面试题之快慢指针问题(一) 查找链表中间节点
- 链表的快慢指针:查找中点
- 链表的快慢指针:查找中点
- 快慢指针 —— 链表中点
- 【数据结构】单链表—判断一个链表是否形成了环形结构 — 快慢指针
- 关于尾插法的优化和快慢指针查找中间节点
- 快慢链表和快慢指针
- 快慢指针应用(二)——链表排序
- 链表中的一些问题——快慢指针
- LintCode 带环链表(快慢指针法)
- 【面试题】-求未知长度的链表的中间节点(快慢指针)
- 链表快慢指针应用
- Java数据结构约瑟夫问题和腾讯面试题快慢指针找出中间节点
- 【Unity基础知识】——Unity图片Atlas-2DTextures属性
- 广告点击率平滑
- apache、nginx禁止访问文件或目录设置
- Servlet基础
- 状态栏3---ToolBar可折叠效果,添加监听
- 数据结构——快慢指针法查找链表中间值
- ThinkPHP3.2.2-CURD
- CombineMeshes unity网格合并后位置会变
- SpringMVC 将复杂对象以json格式返回前端
- Journal Storage Directory not formatted
- 关于html的几个总结
- JavaWeb: 事务与数据库连接池
- Angular2 自定义validators
- URL重写、Cookie、Session技术