快慢指针寻找链表中间值
2019-04-10 17:25
63 查看
版权声明:转载请注明出处 https://blog.csdn.net/qq_36162036/article/details/89188827
[code]#include <iostream> #include <string> using namespace std; typedef struct LNode { int data;//Node data field struct LNode *next;//Pointer field of the node }LNode, *LinkList;//linklist is the pointer to LNode; void createlist_R(LinkList &L){ int n; LinkList s, r; L = new LNode; L->next = NULL;//create a linklist with a head; r = L; cout << "please input the number of figure" << endl; cin >> n; cout << "Please enter non-decreasing integers in order" << endl; //creat the linklist while (n--){ s = new LNode; cin >> s->data; s->next = NULL; r->next = s; r = s; } } LinkList findmiddle(LinkList L){ LinkList q, s; q = L;//P为快指针 s = L;//s为慢指针 while (q != NULL&&q->next != NULL){ q=q->next->next; s=s->next; } return s; } void LinkList_L(LinkList L){ LinkList P; P = L->next; while (P){ cout << P->data << endl; P = P->next; } } int main(){ LinkList L,mid; createlist_R(L);//创建单链表 LinkList_L(L); mid = findmiddle(L); cout << "快慢法得到的单链表节点数据为:" << mid->data << endl; return 0; }
相关文章推荐
- 【数据结构】单链表—求链表中间节点(只遍历一次链表)— 快慢指针
- 证明利用快慢指针寻找有环单链表中环的起点算法
- 利用快慢指针快速得到链表中间节点
- c语言快慢指针之找未知长度单链表中间结点 的值并显示
- 证明利用快慢指针寻找有环单链表中环的起点算法
- 求未知长度链表的中间结点---快慢指针
- 快慢指针寻找单链表中间值
- 【链表】C++快慢两个指针解决问题(分别求倒数第k个、中间以及环的入口结点)
- 数据结构之快慢指针查找链表中间结点
- 链表面试题之快慢指针问题(一) 查找链表中间节点
- 判断单链表是否为循环链表-----在有序链表中寻找中位数------使用快慢指针
- C语言 快慢指针 链表的中间结点
- 链表使用快慢指针求中间值
- 链表的快慢指针:查找中点
- 快慢指针和链表原地反转
- 用快慢指针判断单链表环,找到环入口 扩展到判断两个链表是否相交
- 寻找单项链表中间元素
- 寻找和删除链表的中间节点
- 给定链表中间某结点指针,删除链表中该结点
- (转)问题:假设一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(既不是第一个,也不是最后一个节点),请将该节点从单链表中删除。