只遍历一次单链表找出中间节点的算法

来源:互联网 发布:大数据300a基金001420 编辑:程序博客网 时间:2024/05/22 07:42

要求:只遍历一次单链表找出中间节点的算法

思路:设立两个指针,比如p0和p1, p0=p1=head。p0每次移动两个位置,p1每次移动一个位置,即p0=p0->next->next, p1=p1->next。当p0到达最后一个结点时,p1的位置便是中间节点位置。

void searchmid(Node *head, Node *mid){Node *p0, *p1;p1 = head;p0 = p0->next;while(p1->next->next != NULL){p1 = p1->next->next;p0=p0->next;}mid = p1;}


0 0