文章目录
- 前言
- 876. 链表的中间结点
- 链接
- 方法一:快慢指针
- 1.1 代码:
- 1.2 流程图:
- 方法二:找中间结点
- 2.1 代码:
- 2.2 流程图:
- 总结
前言
焦虑不会消除明天的悲伤 只会让你今天的力量荡然无存
本章的内容是力扣每日随机一题的部分方法的解析
提示:以下是本篇文章正文内容,下面案例可供参考
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,今天的力扣每日一题内容就到此结束啦,如果后续想了解更多,就请关注我吧,一键三连,还有许多种方法没有写出希望各位佬补充哦~