#include<assert.h>
struct ListNode* middleNode(struct ListNode* head)
{
assert(head);
struct ListNode* ps = head;
int i = 0;
while(ps != NULL)
{
ps = ps->next;
i++;
}
int n = i/2;
int count = 0;
while(1)
{
if(count == n)
{
break;
}
head = head->next;
count++;
}
return head;
}