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;
    }
};

你可能感兴趣的:(leetcode,快慢指针)