码迷,mamicode.com
首页 > 其他好文 > 详细

快慢指针

时间:2017-09-09 00:44:48      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:amp   ini   after   size   while   fine   nod   col   else   

//最快的方式查找一个链表中的最中间节点
#include<stdio.h> #define SIZE 100000 typedef struct Node{ int data; struct Node* next; struct Node* prev; }Node; Node f[SIZE]; int index = 0; Node* head; Node* getnode(){ return &f[index++]; } void init(){ index = 0; head = getnode(); head->prev = head; head->next = head; head->data = -1; } void InsertAfter(Node*dst,Node*newnode){ newnode->prev = dst; newnode->next = dst->next; dst->next->prev = newnode; dst->next = newnode; } int main(){ init(); Node* temp = getnode();//head的地址要保存下来用于遍历 for(int i=1;i<21;i++){ Node* p = getnode(); p->data = i; if(i==1){temp = head;} else{temp=temp->next;} InsertAfter(temp,p); } Node* p1,*p2;//快慢指针 p1 = head->next; p2 = head->next; while(p1->data!=-1){ p1 = p1->next->next; p2 = p2->next; } printf("%d\n",p2->prev->data); return 0; }

 

快慢指针

标签:amp   ini   after   size   while   fine   nod   col   else   

原文地址:http://www.cnblogs.com/linux0537/p/7496926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!