876. 链表的中间结点

给定一个头结点为 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。

示例 1:

输入:[1,2,3,4,5]

输出:此列表中的结点 3 (序列化形式:[3,4,5])
返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。
注意,我们返回了一个 ListNode 类型的对象 ans,这样:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL.

思路:

定义一对快慢双指针。fast走两步,slow走一步。

当fast到达尾部,slow指向的就是链表中间元素。

以上是链表元素为单数的情况。如果为双数,情况如下。

当fast为NULL,slow指向的就是下中位数。

结束遍历链表的条件为链表最后一个元素不为NULL,并且数组最后元素的next不为NULL。

代码示例


struct ListNode* middleNode(struct ListNode* head) {//定义快慢双指针。struct ListNode* slow = head;struct ListNode* fast = head;//结束遍历链表的条件为链表最后一个元素不为NULL,并且数组最后元素的next不为NULL。while (fast && fast->next){slow = slow->next;fast = fast->next->next;}//遍历结束slow指针指向中位数,return slow;}

LeetCode-876. 链表的中间结点 C语言相关推荐

  1. LeetCode 876——链表的中间结点

    1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形 ...

  2. Leetcode 876. 链表的中间结点 (每日一题 20210918)

    给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1:输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) ...

  3. LeetCode 876. 链表的中间结点(快慢指针)

    1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 2. 解题 快慢指针法 class Solution {public:List ...

  4. leetcode 876. 链表的中间结点 做题笔记

    题目: 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[ ...

  5. LeetCode 876. 链表的中间结点

    原题链接 解题思路:快慢指针,快指针走两步,慢指针走一步.快指针到NULL慢指针自然到中间位置 /*** Definition for singly-linked list.* struct List ...

  6. leetcode 876.链表中间结点

    链表中间结点 leetcode题目链接:876. 链表的中间结点 一.朴素解法 最直观的思路,因为不知道这个链表的长度,就先通过一次循环统计链表的长度len 之后第二次遍历,直到找到中间结点,输出 / ...

  7. 每日一道leetcode(python)876. 链表的中间结点

    每日一道leetcode(python)876. 链表的中间结点 2021-08-19 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1 ...

  8. JavaScript——leetcode算法入门876. 链表的中间结点【双指针专题】

    题目描述 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式: ...

  9. 【LeetCode题目详解】(二)206.反转链表、876.链表的中间结点

    目录 一.力扣第206题:反转链表 1.思路一 2.思路二 二.力扣第876题:链表的中间结点 1.思路一 2.思路二 总结 一.力扣第206题:反转链表 题目链接:206. 反转链表 - 力扣(Le ...

  10. LeetCode Algorithm 876. 链表的中间结点

    876. 链表的中间结点 Ideas 这题直接秒杀吧,快慢指针,快指针一次走两步,慢指针一次走一步,快指针到头之后慢指针正好到链表中间. Code C++ class Solution {public ...

最新文章

  1. Linux之文件权限命令
  2. 如果有一天程序员再也不忙了
  3. LSASRV事件ID:40960
  4. 氮化镓充电器哪家好_双十二推荐入手的热门氮化镓充电器
  5. greenplum 查询出来的数字加减日期_POLA宝丽美白精华怎么查看生产日期保质期?保质期时间是几年的?查批号在哪里查?...
  6. python基础之内置异常对象
  7. 游戏引擎中的通用编程技术
  8. 操作系统可实训可练习的项目
  9. C++_基础部分_C++文件操作_文件的写入操作---C++语言工作笔记076
  10. 华住:移动时代,自主可控的架构秘密
  11. 计算机组成原理期末复习整理 白中英版本
  12. 事务实例--银行转账
  13. python画tan_Python tan() 函数
  14. python whl文件_python whl是什么文件
  15. H5 - 手机 APP 接入支付宝、微信、银联支付流程汇总
  16. android友盟统计,RN集成友盟统计(Android)
  17. windows下仿Mac Dock软件MultiDock
  18. PhotoShop CS6实现照片背景虚化效果
  19. Ubuntu18.04 或 Windows10 配置yolov5环境并测试运行
  20. skywalking和jpa冲突

热门文章

  1. 软件体系结构:应用软件的设计与开发
  2. 脑电产品-时间常数与截止频率相互换算
  3. oracle快速了解法,快速掌握Oracle基本语法,让你来去自如
  4. 词根、词缀笔记(一)
  5. 设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符
  6. Python之数据载入、存储及文件格式
  7. 逆水寒跑商时服务器维护,逆水寒跑商路线推荐 合适的路线让你事半功倍
  8. Springboot 2.6.1 + Nacos 2.0.3 + Dubbo 3.0.2.1
  9. 落地零售智能体,百联集团全力打造面向未来的数字化商业体
  10. 阿里JAVA开发手册(泰山版)