查找单链表的中间节点,要求只能遍历一次链表

来源:互联网 发布:电信网络宽带 编辑:程序博客网 时间:2024/05/22 15:20
//遍历一遍,找中间节点
//快慢指针问题
Node* FindMidNode(Node* pHead)
{
Node* slow = pHead, *fast = pHead;
while (fast&&fast->next)
{
slow = slow->next;
fast = fast->next->next;
}
return slow;
}
void TestTopic1()
{
Node* list = NULL;
PushBack(&list, 1);
PushBack(&list, 3);
PushBack(&list, 5);
PushBack(&list, 7); 
PushBack(&list, 9);
PrintList(list);
printf("mid:%d\n", FindMidNode(list)->data);

输出结果:
13579
mid:5
阅读全文
0 0