关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

力扣---LeetCode876. 链表的中间结点

发布时间:2023-06-28 12:00:48

前言


焦虑不会消除明天的悲伤 只会让你今天的力量荡然无存

本章的内容是力扣每日随机一题的部分方法的解析

提示:以下是本篇文章正文内容,下面案例可供参考

876. 链表的中间结点


给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。

链接

876. 链表的中间结点 link

方法一:快慢指针


1.1 代码:


struct ListNode* middleNode(struct ListNode* head) {  struct ListNode* fast=head;  struct ListNode* slow=head;  while(fast&&fast->next)  {  slow=slow->next;  fast=fast->next->next;  }  return slow; }

   

1.2 流程图:


奇数

偶数

方法二:找中间结点


2.1 代码:


struct ListNode* middleNode(struct ListNode* head) {  struct ListNode* p=head;  struct ListNode* q=head;  int i=0;  while(p!=NULL)  {  i++;  p=p->next;  }  int j=0;  for(j=0;j<i/2;j++)  {  q=q->next;  }  return q; }

   

2.2 流程图:


奇数

偶数

总结


Ending,今天的力扣每日一题内容就到此结束啦,如果后续想了解更多,就请关注我吧。


/template/Home/leiyu/PC/Static