当前位置: 首页 > article >正文

leetcode876.链表的中间结点

目录

  • 问题描述
  • 示例
    • 提示
  • 具体思路
    • 思路一
  • 代码实现

问题描述

给你单链表的头结点 head ,请你找出并返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。

题目链接:链表的中间结点

示例

在这里插入图片描述
在这里插入图片描述

提示

  链表的结点数范围是 [1, 100]
  1 <= Node.val <= 100

具体思路

思路一

  使用快慢指针。定义个slow的慢指针,每次往后面走一个,定义一个fast的快指针,每次往后面走两个。当奇数个数据的时候,fast的next走到空就停止,当偶数个数据的时候,fast走到空就停止。
在这里插入图片描述
在这里插入图片描述

代码实现

//思路1
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
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;
}

http://www.kler.cn/a/554780.html

相关文章:

  • HBuilderX中,VUE生成随机数字,vue调用随机数函数
  • Cannot import to svn: ‘C:\Program‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  • QT基于Gstreamer采集的简单示例
  • Python的那些事第二十三篇:Express(Node.js)与 Python:一场跨语言的浪漫邂逅
  • 【Python爬虫(22)】解锁MySQL性能密码:优化与索引全攻略
  • 【单臂路由配置】
  • leecode 刷题感悟-- 哈希表
  • Redis 的线程安全问题解析:为什么 Redis 是线程安全的?
  • 傅里叶变换和小波变换概述及实践
  • 如何在 Mac 上安装并配置 JDK 环境变量
  • Qt 中的QMainWindow、QWidget 和 QDialog 基类
  • Python爬虫实战:获取腾牛网高清壁纸图片
  • 深度神经网络 机器学习 超参数自动优化 ,PyGAD和DEAP是两个常用的遗传算法库,它们各自有不同的特点和适用场景
  • 我的书包作文范文
  • 鸿蒙-hvigor定制构建
  • 【数据挖掘】深度挖掘
  • 前后端分离的Netty + WebSocket实现聊天室
  • 【JAVA:list中再定义一个list对象,循环赋值不同的list数据,出现追加重复数据问题】
  • Android13-包安装器PackageInstaller-之apk安装流程
  • AI IDE 使用体验及 AI 感受