示例:
输入:[1,2,3,4,5]
输出:此列表中的结点 3
输入:[1,2,3,4,5,6]
输出:此列表中的结点 4
解题思路:
快慢指针法,让快指针走两步慢指针走一步,当个数为奇数时,
fast->next==NULL,当为偶数时fast == NULL。

typedef struct ListNode Node;
struct ListNode* middleNode(struct ListNode* head){
Node* slow = head;
Node* fast = head;
while(fast != NULL && fast->next != NULL)
{
slow = slow->next;
fast = fast->next->next;
}
return slow;
}
本文介绍了一种使用快慢指针法找到链表中间节点的方法。通过让快指针每次走两步,慢指针每次走一步,当快指针到达链表尾部时,慢指针恰好位于链表的中间位置。适用于链表长度为奇数或偶数的情况。
506

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



