LC-链表的中间节点(双指针)

这篇具有很好参考价值的文章主要介绍了LC-链表的中间节点(双指针)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LC-链表的中间节点(双指针)

链接:https://leetcode.cn/problems/middle-of-the-linked-list/description/
描述:给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。
LC-链表的中间节点(双指针),数据结构与算法,链表,数据结构

输入:head = [1,2,3,4,5]
输出:[3,4,5]
解释:链表只有一个中间结点,值为 3 。

LC-链表的中间节点(双指针),数据结构与算法,链表,数据结构

输入:head = [1,2,3,4,5,6]
输出:[4,5,6]
解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。

思路:使用快慢指针,慢指针一次走一步,快指针一次走两步,这样当快指针走到链表尾部时,慢指针所在节点就是中间节点。
代码如下:

     public ListNode middleNode(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode a = head;
        ListNode b = head;
        while (b != null && b.next != null) {
            b=b.next.next;
            a=a.next;
        }
        return a;
    }
    }

双指针是比前面遍历和递归都要好的方法,代码量较少,使用内存也较小。文章来源地址https://www.toymoban.com/news/detail-650075.html

到了这里,关于LC-链表的中间节点(双指针)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构:图文详解单链表的各种操作(头插法,尾插法,任意位置插入,删除节点,查询节点,求链表的长度,清空链表)

    目录  一.什么是链表 二.链表的实现 节点的插入 头插法 尾插法 指定位置插入 节点的删除 删除第一次出现的节点 删除所有节点 节点的查找 链表的清空 链表的长度 前言: 在上一篇文章中,我们认识了线性数据结构中的顺序表,而本篇文章则是介绍线性数据结

    2024年02月05日
    浏览(33)
  • 【数据结构】链表OJ面试题(《删除定值、反转、返回中间结点、倒数第k节点、合并链表》)+解析)

    还不清楚链表的码喵们可以看看前篇关于链表的详解 既然已经懂得了链表该如何实现,那么现在就趁热打铁开始练习!这里给码喵们整理了相对不错的一些OJ题来练习  力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 思路:遍历整个表,访问每个表的值并且删除再将nex

    2024年02月22日
    浏览(36)
  • 【数据结构和算法初阶(C语言)】复杂链表(随机指针,随机链表的复制)题目详解+链表顺序表结尾

    目录  1.随机链表的复制 1.2题目描述  1.3题目分析 1.4解题: 2.顺序表和链表对比 2.1cpu高速缓存利用率 3.结语 一个长度为  n  的链表,每个节点包含一个额外增加的随机指针  random   该指针可以指向链表中的任何节点或空节点。        构造这个链表的  深拷贝 。 深拷贝

    2024年03月10日
    浏览(60)
  • 详解链表oJ<反转链表,链表的中间节点及链表的回文>

    hello,大家好,这里是Dark FlameMaster,今天和大家分享的是有关数据结构链表的几道题目,链表的中间节点,反转链表及判断链表是否为回文结构,放在一起讲解会印象更加深刻。 链接:链表的中间节点 分析:  如果想要得到链表的中间节点,最简单的思路就是从头结点遍历整

    2024年02月08日
    浏览(43)
  • 【leetcode】链表的中间节点|链表中倒数第k个节点

    目录 1.链表的中间节点 2.链表中倒数第k个节点  思路1:遍历链表,统计节点个数count,返回第count/2 +1个节点  📖Note: 注意循环条件为--mid,--mid循环执行mid-1次,mid--循环mid次,返回的是中间节点的下一个节点 思路二:快慢指针 设置一个慢指针slow,一个快指针fast,慢指针一

    2024年02月15日
    浏览(26)
  • <数据结构> 链表 - 链表的概念及结构

    概念: 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的 逻辑顺序 是通过链表中的 指针链接 次序实现的 1、链表由一系列结点(链表中每一个元素称为结点)组成。 2、结点可以在运行时动态(malloc)生成。 3、每个结点包括两个部分:一个是存储数据元素的

    2023年04月09日
    浏览(32)
  • 【数据结构】链表的回文结构

    单链表的操作算法是笔试面试中较为常见的题目。 本文将着重介绍平时面试中常见的关于链表的应用题目,马上要进行秋招了。希望对你们有帮助 _ 😀 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针

    2024年02月12日
    浏览(41)
  • 【Leetcode】移除链表元素 链表的中间节点 链表中倒数第k个节点

    目录 一.【Leetcode203】移除链表元素 1.链接 2.题目再现  A.双指针法 B.类尾删法 C.哨兵位 二.【Leetcode876】链表的中间节点 1.链接:链表的中间节点 2.题目再现 3.解法:快慢指针 三.链表中倒数第k个节点 1.链接:链表中倒数第k个节点 2.题目再现 3.解法 :快慢指针 1.链接 移除链表

    2024年02月01日
    浏览(34)
  • 【C语言】Leetcode 876. 链表的中间节点

    主页:17_Kevin-CSDN博客 专栏:《Leetcode》  通过题目的要求可以判断出有两种示例要解决,一种是偶数节点的链表,一种是奇数节点的链表,应对这两种情况我们需要使程序对二者都可以兼容。 中间节点,只要找到中间的位置就能找到中间的节点。那么这个位置要怎么去查找

    2024年03月14日
    浏览(35)
  • 【数据结构】链表的分类和双向链表

    本篇是基于上篇单链表所作,推荐与上篇配合阅读,效果更加 http://t.csdnimg.cn/UhXEj 链表的结构非常多样,以下情况组合起来就有8种(2 x 2 x 2)链表结构: 我们一般叫这个头为哨兵位 我们上回讲的单链表就是不带头单项不循环链表。 今天我们要讲带头双向循环的链表。 不过

    2024年01月25日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包