C/C++小知识点:快慢指针
程序员文章站
2024-03-07 20:45:13
...
C/C++小知识点:快慢指针
可用于解决需要寻找单链表中点的问题。
/* struct definition */
struct ListNode
{
int val;
struct ListNode *next;
};
/* fast-slow pointer */
struct ListNode* findMiddleOfList(struct ListNode* head, struct ListNode* tail)
{
struct ListNode * slowptr = head, * fastptr = head;
while (fastptr != tail)
{
slowptr = slowptr->next;
fastptr = fastptr->next;
if (fastptr != tail)
{
fastptr = fastptr->next;
}
}
return slowptr;
}