前言
焦虑不会消除明天的悲伤 只会让你今天的力量荡然无存
本章的内容是力扣每日随机一题的部分方法的解析
提示:以下是本篇文章正文内容,下面案例可供参考
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,今天的力扣每日一题内容就到此结束啦,如果后续想了解更多,就请关注我吧。