单链表操作之查找中间结点
来源:互联网 发布:mac book air 虚拟机 编辑:程序博客网 时间:2024/05/03 20:58
***单链表操作之查找中间结点***
//查找链表的中间结点;
//自定义的结点结构体和头指针结构体:
#include<stdio.h>#include<assert.h>#include<stdlib.h>#include<string.h>typedef int DataType;typedef struct LinkNode{DataType data;struct LinkNode* next;}LinkNode,*pLinkNode;//结点结构体typedef struct LinkList{LinkNode* pHead;//头结点指针}LinkList ,*pLinkList;//链表
//函数原型:pLinkNode FindMidNode(pLinkList pList);
/* 思路分析:要找的链表的中间结点,我在这里的解法用到的是快慢指针;定义两个指针,都指向链表的第一个成员,然后快的指针每次走两步,慢的指针每次走一步,当快指针指向的next为NULL即链表结点为奇数个的时候,或者,快指针快指针自身为空的时候停下,即链表元素为偶数个,此时的慢指针走了s步,则快指针走了2s步,则此时 慢指针所指向的结点为中间节点;
//这道题比较简单,理解起来也容易,但是关于快慢指针的应用才是重点,后续的文章会讲到链表的带环问题,会对快慢指针进行再次的应用,就比较难理解了!
//算法代码实现:
pLinkNode FindMidNode(pLinkList pList){pLinkNode fast = NULL ;pLinkNode slow = NULL;assert(pList);fast = slow = pList ->pHead ;while(fast && fast->next ){fast = fast->next ->next ;slow = slow->next;}return slow;}
1 0
- 单链表操作之查找中间结点
- 单链表实现查找中间结点
- 数据结构(四)之单链表查找中间结点
- 数据结构(四)之单链表查找中间结点
- 数据结构之快慢指针查找链表中间结点
- 快速查找长度未知的单链表的中间结点
- 单链表的逆置和中间结点的查找
- 单链表的创建、插入、删除、销毁以及查找中间结点
- 寻找单链表中间结点
- 单链表的中间结点
- 输出单链表中间结点
- 寻找单链表的中间结点
- 查找单链表中间节点
- 查找单链表中间元素
- 查找单链表中间值
- 查找单链表中间节点
- 单链表查找中间元素
- 单链表结点查找
- fatal: Unable to create '/.git/index.lock': File exists 的解决方法
- <Hadoop>Hadoop 2.x 生态(待更新)
- PAT乙级—1035. 插入与归并(25)-native
- java方面面试题
- Linux文件存储结构,包括目录项、inode、数据块
- 单链表操作之查找中间结点
- 查找字串
- Unity知识四:Unity编程过程中遇到的小问题(持续更新)
- Unity 打包 Android 后怎么看见脚本中的 Debug?
- 笔试题75. LeetCode OJ (62)
- 关于fork函数
- Python pip install
- 第十五周项目—程序补充阅读(1)
- Round 06 E-FatMouse' Trade