c_cpp 876.链接清单的中间位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 876.链接清单的中间位置相关的知识,希望对你有一定的参考价值。
//自己的思路:首先遍历一遍进行计数,然后直接访问到中值即可
/**
* 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* p = head;
ListNode* q = head;
int num = 0;
while(p->next != NULL){
p = p->next;
num++;
}
num += 1;
num /= 2;
while(num > 0){
q = q->next;
num--;
}
return q;
}
};
//大神思路,使用快慢指针同时进行
class Solution {
public:
ListNode* middleNode(ListNode* head) {
ListNode *slow = head, *fast = head;
while (fast && fast->next)
slow = slow->next, fast = fast->next->next;
return slow;
}
};
以上是关于c_cpp 876.链接清单的中间位置的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 234.回文链接清单
c_cpp 206.反向链接清单
c_cpp 循环链接清单实施
c_cpp 206.反向链接清单 - 简单 - 2018.7.31
c_cpp 92.反向链接清单II - 中 - 2018.7.31
876. Middle of the Linked List - LeetCode