如何快速查找单链表的中间节点?
快慢指针思路:快指针和慢指针从头开始遍历链表节点,快指针走两步,慢指针走一步,当快指针走到尾部时,慢指针刚好走到中间节点。
ListNode* findMidNode(ListNode* head)
{
ListNode *slow, *fast;
slow = head;
fast = head;
while (fast && fast->next)
{
slow = slow->next;
fast = fast->next->next;
}
return slow;
}
本文介绍了一种快速定位单链表中间节点的方法——使用快慢指针。通过两个指针同时遍历链表,快指针每次移动两步,慢指针每次移动一步,当快指针到达链表尾部时,慢指针正好指向中间节点。
3042

被折叠的 条评论
为什么被折叠?



