題目描述
給定一個帶有頭結點 head
的非空單鏈表,返回鏈表的中間結點。如果有兩個中間結點,則返回第二個中間結點。
輸入:[1,2,3,4,5,6]
輸出:此列表中的結點 4 (序列化形式:[4,5,6])
解題思路
快慢指針,簡單題。
補充:鏈表類經典題目。
參考代碼
class Solution {
public:
ListNode* middleNode(ListNode* head) {
ListNode *slow = head, *quick = head;
while(quick != nullptr && quick->next != nullptr){
slow = slow->next;
quick = quick->next->next;
}
return slow;
}
};