Leetcode 876.链表的中间节点

问题描述

给定一个带有头结点 h e a d 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;
    }
};
MD_
发布了139 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_27690765/article/details/105040711