这里要注意的时当节点个数为偶数时输出的时靠后的中间节点
这个我们用快慢指针来解决
定义俩个指针,start和end
start每次走一步
end每次走俩步
当节点个数为奇数时end=NULL结束,start为要返回的值
当节点个数为偶数时end->next=NULL结束,start为要返回的值
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* middleNode(struct ListNode* head){
//快慢指针
struct ListNode* start=head;
struct ListNode* end=head;
while(end && end->next)
{
start=start->next;
end=end->next->next;
}
return start;
}