您的位置:首页 > 其它

找单链表的中间位置

2015-07-31 22:20 169 查看

给出一个单例表,不知道节点N的值,怎样只遍历一次就可以求出中间节点。

解析:

设立两个指针,比如*p和*q,p每次移动两个位置,即p=p->next->next,q每次移动一个位置,

即q=q->next;

当p到达最后一个节点时,q就是中间节点了。

void serchmid(node *head, node *mid)

{

node *temp = head;

while (head->next->next != NULL)

{

head = head->next->next;

temp = temp->next;

}

mid = temp;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: