#include <stdio.h> #include <stdlib.h> typedef struct node { int data; struct node *next; }NODE,*LNODE; NODE *createList (); NODE *searchmid(NODE *head); int main() { LNODE head; NODE *q,*mid; int i=0; head = createList(); mid = searchmid(head); printf("mid->data:%d\n",mid->data); } NODE *createList () { LNODE ph; NODE * p ,*q; int element; //create the head of the list; ph = (NODE *)malloc(sizeof(NODE)); ph->data = 0; ph->next = NULL; q = ph; printf("Please input the elemnet:\n"); scanf("%d",&element); while(element != 99999)//如果输入的值为99999,则表示输入结束,此处有待改进 { p = (NODE *)malloc(sizeof(NODE)); p->data = element; q->next = p ; q = p; scanf("%d",&element); } p->next = NULL; return ph; } NODE *searchmid(NODE *head) { NODE *p1 = head->next; NODE *p2 = head->next->next; while(p2!=NULL) { if(p2->next!=NULL) { p2 = p2->next->next; p1 = p1->next; } else { return p1->next; } } return p1; }