1.解题思路
利用快慢指针,快指针一次走两步,慢指针一次走一步,当快指针指向空时,慢指针指向的就为中间结点.
2.代码实现
struct ListNode* middleNode(struct ListNode* head) { if(head==NULL) return NULL; else if(head->next==NULL) return head; else{ struct ListNode* fast=head; struct ListNode* slow=head; while(fast) { if(fast->next==NULL) break; fast=fast->next->next; slow=slow->next; } return slow; } }
结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!