/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* middleNode(struct ListNode* head){ struct ListNode *fast, *slow; fast = slow = head; while(fast && fast->next) { slow = slow -> next; fast = fast -> next -> next; } return slow; }