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% 的用户
相关文章推荐
- leetcode 876、链表的中间结点(快慢指针法)
- LeetCode876 链表的中间结点 python3
- C++ 单链表基本操作分析与实现 链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结
- 用C++实现数据结构二 带头结点的单链表
- 查找链表中倒数第k个结点 C++实现
- C++ 带有头结点的单链表的简单实现
- 数据结构(5)线性表之链表C++实现带头结点的单链表合并
- C++实现带头结点的单链表(友元类)
- LeetCode 206: 反转链表 C++实现
- 不带头结点的链表头插法C++实现
- 带头结点的链表尾插法C++实现
- C++实现无头结点的双向链表
- 数据结构 带头结点的单链表 操作大全 最全的链表操作(c++实现)
- 剑指offer第十四题【链表中倒数第k个结点】c++实现
- LeetCode 19: 删除链表的倒数第N个节点 C++实现
- C++实现单链表(不含头结点)
- 876. 链表的中间结点
- c++中对单链表操作---合并两个链表&&单链表逆序&&删除链表中的中间结点
- 876. 链表的中间结点
- 【链表】C++快慢两个指针解决问题(分别求倒数第k个、中间以及环的入口结点)