#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;
}
一次遍历单链表中间节点
最新推荐文章于 2022-04-28 18:30:34 发布