您的位置:首页 > 编程语言 > C语言/C++

LeetCode 876: 链表的中间结点 C++实现

2019-05-29 20:43 417 查看

思路

快慢指针法

代码实现

//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) {
ListNode * slow, * fast;
slow = fast = head;
while(fast && fast->next){
slow = slow->next;
fast = fast->next->next;
}
//快慢指针法补充:结束时fast不为空则len为奇数;fast为空则len为偶数
//结束时: len为奇数则slow位于(len+1)/2;len为偶数则slow位于len/2+1
return slow;
}
};

执行结果

执行用时 : 8 ms, 在Middle of the Linked List的C++提交中击败了85.92% 的用户
内存消耗 : 8.5 MB, 在Middle of the Linked List的C++提交中击败了18.20% 的用户

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: