最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

C语言每日一题(25)链表的中间结点

维修 admin 47浏览 0评论

C语言每日一题(25)链表的中间结点

力扣 876. 链表的中间结点

题目描述

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

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

思路分析

快慢指针法

用一慢一快指针遍历整个链表,每次遍历,快指针都会比慢指针多走一步,即快指针一次走两步,慢指针一次走一步。最后返回慢指针就是对应的中间结点了。

struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow=head;struct ListNode* fast=head;while(fast&&fast->next)//结束条件{slow=slow->next;fast=fast->next->next;}return slow;}

C语言每日一题(25)链表的中间结点

力扣 876. 链表的中间结点

题目描述

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

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

思路分析

快慢指针法

用一慢一快指针遍历整个链表,每次遍历,快指针都会比慢指针多走一步,即快指针一次走两步,慢指针一次走一步。最后返回慢指针就是对应的中间结点了。

struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow=head;struct ListNode* fast=head;while(fast&&fast->next)//结束条件{slow=slow->next;fast=fast->next->next;}return slow;}

发布评论

评论列表 (0)

  1. 暂无评论