设置一个快指针,一个慢指针,并且快指针的步长为慢指针的两倍,当快指针到达结尾时,慢指针一定在中间。
class Solution {
public:
ListNode* middleNode(ListNode* head) {
ListNode *sp = head;
ListNode *fp = head;
while(fp && fp->next){
sp = sp->next;
fp = fp->next->next;
}
return sp;
}
};