lintcode228. 链表的中点
作者:互联网
找链表的中点。
样例
样例 1:
输入: 1->2->3
输出: 2
样例解释: 返回中间节点的值
样例 2:
输入: 1->2
输出: 1
样例解释: 如果长度是偶数,则返回中间偏左的节点的值。
挑战
如果链表是一个数据流,你可以不重新遍历链表的情况下得到中点么?
/**
* Definition of singly-linked-list:
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param head: the head of linked list.
* @return: a middle node of the linked list
*/
ListNode * middleNode(ListNode * head) {
// write your code here
if(head==NULL) return NULL;
ListNode *p=new ListNode(0);
p->next=head;
ListNode*fast=p;
ListNode*slow=p;
while(fast)
{
fast=fast->next;
if(fast){ fast=fast->next;
slow=slow->next;}
}
return slow;
}
};
Sinb妃
发布了359 篇原创文章 · 获赞 13 · 访问量 1万+
私信
关注
标签:head,ListNode,lintcode228,样例,fast,next,链表,中点 来源: https://blog.csdn.net/weixin_43981315/article/details/103994202