天天看點

Leetcode 876.連結清單的中間節點問題描述解題報告實作代碼

文章目錄

  • 問題描述
  • 解題報告
  • 實作代碼

問題描述

給定一個帶有頭結點 h e a d head head的非空單連結清單,傳回連結清單的中間節點。

如果有兩個中間節點,則傳回第二個中間節點。

解題報告

  • 快慢指針法

    設定快慢指針,快指針是慢指針的兩倍速,當快指針走到底,慢指針走到中間

實作代碼

class Solution {
public:
    ListNode* middleNode(ListNode* head) {
        ListNode* slow = head;
        ListNode* fast = head;
        while (fast != NULL && fast->next != NULL) {
            slow = slow->next;
            fast = fast->next->next;
        }
        return slow;
    }
};