文章作者:Tyan
博客:noahsnail.com | 优快云 | 简书
1. Description

2. Solution
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* middleNode(ListNode* head) {
if(!head) {
return head;
}
ListNode* p1 = head;
ListNode* p2 = head;
ListNode* pre = nullptr;
while(p2 && p2->next) {
p1 = p1->next;
p2 = p2->next->next;
}
return p1;
}
};

本文介绍了一种寻找链表中间节点的高效算法。通过使用两个指针,一个快指针和一个慢指针,可以在线性时间内找到链表的中间节点,而无需遍历整个链表两次。此算法在LeetCode的链表中找中间节点问题中得到应用。
732

被折叠的 条评论
为什么被折叠?



