返回链表的中间结点

2023-10-26

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

用快慢指针来写:

Node* Fast;
Node* Slow;

先初始化,让Fast和Slow都指向第一个链表节点,然后让Fast每次移动两位,Slow每次移动一位,这样,Fast的路程就是Slow的两倍,当Fast到链表的末尾的时候,Slow也就到了链表的中间位置了。我们只需要返回Slow就可以了。

结束的条件就是当Fast为NULL或者Fast->next为NULL。

核心代码如下:

//初始化
Node* Fast=head;
Node* Slow=head;
//快慢指针操作
while(Fast&&Fast->next){
Fast=Fast->next->next;
Slow=Slow->next;
}

当然还要考虑链表的个数,可能为奇数,也可能为偶数。
当链表为奇数时:

在这里插入图片描述
当链表为偶数时:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

返回链表的中间结点 的相关文章

  • C++中的.和->

    C 中的 和 gt 1 C 中的点 的应用 如果是一个对象或者引用去调用成员变量或者成员函数函数的话 会使用到点 include
  • 【数据结构】【王道408】——PPT截图与思维导图

    自用视频PPT截图 视频网址王道B站链接 23考研 408新增考点 并查集 红黑树 2023年408真题数据结构篇 408考纲解读 考纲变化 目录 第一章 绪论 第二章 线性表 顺序表 单链表 双链表 循环链表 静态链表 差别 第三章 栈
  • 使用c++超详细解释数据结构中的顺序栈和链栈

    在C 中 栈 Stack 是一种数据结构 它可以用来存储数据 并支持两种基本操作 压入 Push 和弹出 Pop 栈的特点是后进先出 Last In First Out LIFO 也就是最后压入的元素最先弹出 栈可以用数组或链表等数据结构来
  • leetcode算法面试题:对称二叉树、对链表进行插入排序、多数元素

    对称二叉树问题 给定一个二叉树 检查它是否是镜像对称的 例如 二叉树 1 2 2 3 4 4 3 是对称的 1 2 2 3 4 4 3 但是下面这个 1 2 2 null 3 null 3 则不是镜像对称的 1 2 2 3 3 参考答案 c
  • 剑指Offer 22. 链表中倒数第k个节点(Easy)/ 19. 删除链表的倒数第 N 个结点(Medium)/ ListNode调用!!!

    LeetCode 19 删除链表的倒数第 N 个结点 Medium 题目链接 题解 链表中倒数第 k 个节点 双指针 清晰图解 思路 代码 Definition for singly linked list class ListNode d
  • 【数据结构】复杂度

    博客主页 小王又困了 系列专栏 数据结构 人之为学 不日近则日退 感谢大家点赞 收藏 评论 目录 一 什么是数据结构 二 什么是算法 三 算法的效率 四 时间复杂度 4 1大O渐进表示法 4 2常见时间复杂度计算举例 4 3例题 消失的数字
  • 剑指 Offer 18. 删除链表的节点 -- 双指针

    0 题目描述 leetcode原题链接 剑指 Offer 18 删除链表的节点 1 双指针解法 删除值为 val 的节点分需为两步 定位节点 修改引用 定位节点 遍历链表 直到 head val val 时跳出 即可定位目标节点 修改引用
  • 【华为OD机试】五子棋迷(C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 题目描述 张兵和王武是五子棋迷 工作之余经常切磋棋艺 这不 这会儿又下起来了 走了一会儿 轮张兵了 对
  • 95-34-030-Context-DefaultChannelHandlerContext

    文章目录 1 概述 2 继承体系 3 源码 1 概述 2 继承体系 3 源码 final class DefaultChannelHandlerContext
  • 【力扣经典题目】链表的回文结构,赶快收藏起来

    题目描述 对于一个链表 请设计一个时间复杂度为O n 额外空间复杂度为O 1 的算法 判断其是否为回文结构 给定一个链表的头指针A 请返回一个bool值 代表其是否为回文结构 保证链表长度小于等于900 测试样例 1 gt 2 gt 2 g
  • 对于单向链表的排序与去重

    include bits stdc h using namespace std struct node int num node next class Chain public Chain head tail new node void G
  • 数学(五) -- LC[415]&[455] 字符串相加与两数相加

    1 字符串相加 1 1 题目描述 给定两个字符串形式的非负整数 num1 和num2 计算它们的和并同样以字符串形式返回 你不能使用任何內建的用于处理大整数的库 比如 BigInteger 也不能直接将输入的字符串转换为整数形式 示例 1
  • 夯实C++基础之刷题:链表——3合并两个有序列表

    题目 解题 递归和迭代 我的理解 递归是自己调用自己 迭代是按思路往下走 1 递归 class Solution public ListNode mergeTwoLists ListNode list1 ListNode list2 递归
  • 讲解+可执行完整代码 C++单链表(2)查找、插入、删除元素

    目录 一 查找元素 代码部分 核心代码 完整代码 二 插入元素 核心思路 代码部分 核心代码 完整代码 编辑 三 删除元素 核心思路 代码部分 核心代码 完整代码 一 查找元素 此段代码仅实现查找元素的功能 代码部分 核心代码 node l
  • 关于uthash 的初步源码阅读

    背景 在偶然的mqtt mosquitto 中的源码中查看的关于topic的处理 知道了哈希表这种的数据结构 最近花了一点时间将这个部分的源码看了一部分 不知道后面还有没有时间继续查看所以就写一篇文档作为笔记吧 uthash 使用 utha
  • c语言指针入门

    1 指针是什么 1 概念 指针是一种十分重要的数据类型 利用指针变量可以直接对内存中各种不同数据结构的数据进行 快速处理 2 指针与内存的关系 指针与内存有着密切的联系 为了正确理解指针的概念 必须弄清楚计算机系统中数 据存储和读取的方式
  • 算法题-简单系列-03-判断链表中是否有环

    文章目录 1 题目 1 1 思路1 双指针 1 2 思路2 哈希表 1 题目 判断给定的链表中是否有环 如果有环则返回true 否则返回false 1 1 思路1 双指针 我们使用两个指针 fast 与 slow 它们起始都位于链表的头部
  • 算法题-简单系列-05-两个链表的第一个公共结点

    文章目录 1 题目 1 1 思路1 循环遍历 1 题目 输入两个无环的单向链表 找出它们的第一个公共结点 如果没有公共节点则返回空 1 1 思路1 循环遍历 使用两个指针N1 N2 一个从链表1的头节点开始遍历 我们记为N1 一个从链表2的
  • 剑指 Offer(第2版)面试题 35:复杂链表的复制

    剑指 Offer 第2版 面试题 35 复杂链表的复制 剑指 Offer 第2版 面试题 35 复杂链表的复制 解法1 模拟 剑指 Offer 第2版 面试题 35 复杂链表的复制 题目来源 48 复杂链表的复刻 解法1 模拟 算法 复制原
  • 顺序表和链表基础

    定义动态的顺序表 typedef int SLDataType typedef struct Seqlist SLDataType array size t size size t capacity Seqlist 在顺序表中插入数据 bo

随机推荐

  • Unity中的简单数据存储办法

    这段代码演示了Unity中的简单数据存储办法 当涉及到不同类型的存储时 下面是一些示例代码来演示在Unity中如何使用不同的存储方法 1 临时存储示例代码 内存变量 csharp 定义一个静态变量来存储临时计分 public static
  • 使用浏览器插件修改request请求header头

    文章目录 前言 一 插件结构 二 代码 1 插件配置项 2 功能代码 项目地址 总结 前言 最近遇到了一个疑似header头引发的bug 需要修改header头来验证 于是写了个插件来实现 一 插件结构 浏览器插件相关的东西我这里就不说了
  • Linux网络配置

    文章目录 一 网络地址配置 1 1网络地址查看 ifconfig 1 2网络配置修改 1 3网络虚拟接口设置 二 路由表配置 2 1路由表查看 route 2 2路由表设置 2 2 1添加指定网段到路由表 2 2 2删除指定的网段 2 2
  • mysql: [Warning] Using a password on the command line interface can be insecure.(using password:YES)

    前段时间不知道什么原因在Linux终端中出现无法启动Mysql的情况 在Linux终端中输入 mysql uroot p密码 的时候出现了下面这个错误 mysql Warning Using a password on the comman
  • 看完这篇 教你玩转渗透测试靶机vulnhub——FunBox10(Under Construction)

    Vulnhub靶机FunBox10 Under Construction 渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 Vulnhub靶机漏洞详解 信息收集 漏洞利用 pspy64提权 获取flag
  • vim常用的功能

    vim是vi 的升级版本 它兼容vi的所有指令 而且还有一些新的特性 比如说预付高亮 可视化操作不仅可以在终端进行 还可以在 x Window mac os windows vim 有多种模式 我们常用的有三种 命令模式 插入模式 末行模式
  • MySQL常用命令总结

    命令行 作用 show engines 查看存储引擎 select database 查看当前数据库 show databases 查看数据库列表 show create database test 查看数据库test的建表语句 show
  • 第三方库github地址汇总

    1 butterknife https github com JakeWharton butterknife android Butterknife requires Java 8 compileOptions sourceCompatib
  • gitlab的日常使用

    gitlab的日常使用 一 登录gitlab 二 修改当前用户的密码 三 项目管理 1 新建项目 2 查看该项目 四 导入ssh key 1 选择ssh方式 2 选择设置列表 3 选择ssh key选项 4 在linux端生成ssh key
  • SpringCloud面试题及答案 300道,springcloud面试题总结 (持续更新)

    SpringCloud面试题及答案 SpringCloud面试题大全带答案 2021年面试题及答案 最新版 高级SpringCloud面试题大全 发现网上很多SpringCloud面试题及答案整理都没有答案 所以花了很长时间搜集 本套Spr
  • 浙大版《Python 程序设计》题目集 第2章-4 特殊a串数列求和

    第2章 4 特殊a串数列求和 给定两个均不超过9的正整数a和n 要求编写程序求a aa aaa aa a n个a 之和 输入格式 输入在一行中给出不超过9的正整数a和n 输出格式 在一行中按照 s 对应的和 的格式输出 输入样例 2 3 输
  • eclipse文件上传错误:the request doesn‘t contain a multipart/form-data or multipart/mixed stream...

    错误信息 org apache commons fileupload FileUploadBase InvalidContentTypeException the request doesn t contain a multipart fo
  • 大数据预处理架构及方法详解

    大数据预处理架构及方法详解 大数据的快速发展和广泛应用 使得大数据预处理成为数据分析和挖掘的关键环节 在本文中 将详细介绍大数据预处理的架构和方法 并提供相应的源代码示例 一 大数据预处理架构 大数据预处理的目标是将原始的 杂乱无章的数据转
  • echarts中tooltip自定义使用值params参数详解

    tooltip formatter params 首先是tooltip格式 其次就是分析params参数 最后formatter怎么return显示 在做项目的过程中 需要增加点悬浮内容来解释当前点的数据 但是查了echarts和一些资料
  • flex水平排列左对齐

    这里分享一个flex水平排列左对齐的方法 很简单 问题描述是复制过来 解决班发是我自己常用的 怕忘记所以记录下 让CSS flex布局最后一行列表左对齐的N种方法 coldriversnow的博客 CSDN博客 flex 最后一行左对齐 问
  • centos7 安装包出现相互依赖

    安装包时添加 nodeps force
  • imac 网络安装系统 服务器时间,Mac 重装系统教程(二):网络在线重装

    哈喽 大家好 我是麦壳菌 昨天给大家分享了 Mac 重装系统教程 系列的第一篇 Mac 在哪些情况下需要重装系统 今天分享第二篇 网络在线重装 重装系统的方法分为 网络在线重装 和 U盘引导重装 网络在线重装 开机时 通过快捷键进入Mac
  • Python入门教程:超详细1小时学会Python

    1 Hello world 安装完Python之后 打开IDLE Python GUI 该程序是Python语言解释器 你写的语句能够立即运行 我们写下一句著名的程序语句 并按回车 你就能看到这句被K R引入到程序世界的名言 在解释器中选择
  • 【Unity基础】3.脚本控制物体运动&天空盒

    Unity基础 3 脚本控制物体运动 天空盒 大家好 我是Lampard 欢迎来到Unity基础系列博客 所学知识来自B站阿发老师 感谢 一 搭建开发环境 1 下载visual studio 在我们下载unity编译器的时候 会让我们选择当
  • 返回链表的中间结点

    返回链表的中间结点 给定一个带有头结点 head 的非空单链表 返回链表的中间结点 如果有两个中间结点 则返回第二个中间结点 用快慢指针来写 Node Fast Node Slow 先初始化 让Fast和Slow都指向第一个链表节点 然后让