首页 > 其他分享 >获取链表中间位置的两种方法方法

获取链表中间位置的两种方法方法

时间:2024-08-15 18:56:40浏览次数:13  
标签:slow ListNode fast next 链表 获取 方法 指针

方法一:

我们可以计算链表节点的数量,然后遍历链表找到前半部分的尾节点。

方法二:

我们也可以使用快慢指针在一次遍历中找到:慢指针一次走一步,快指针一次走两步,快慢指针同时出发。当快指针移动到链表的末尾时,慢指针恰好到链表的中间。通过慢指针将链表分为两部分。

慢指针:前半部分的末尾,以慢指针为界将链表分成前后两部分

快指针:后半部分的开始

若链表有奇数个节点,则中间的节点应该看作是前半部分。

private ListNode endOfFirstHalf(ListNode head) {
        ListNode fast = head;
        ListNode slow = head;
        while (fast.next != null && fast.next.next != null) {
            fast = fast.next.next;
            slow = slow.next;
        }
        return slow;
    }

标签:slow,ListNode,fast,next,链表,获取,方法,指针
From: https://blog.csdn.net/m0_74051652/article/details/141194982

相关文章

  • cxgrid使用三问1cxgrid 如何动态创建列2cxGrid 通过字段名取得列3cxGrid动态创建的列
    //1cxgrid动态创建列procedureTFrmRuleEdit.CreateCols;varColumn:TcxGridDBColumn;begincdsPowerPrj.First;whilenotcdsPowerPrj.EofdobeginColumn:=viewPower.CreateColumn;Column.Caption:=cdsPowerPrj.FieldByName('description').Text;Column.D......
  • JSONUtil、JsonArray应用 (全网最全面的解析方式汇总) - 调用第三方接口后,获取的结果
    背景:近期开发的内容涉及到了我们平台对其他平台提供接口的调用,然后也涉及到接口提供方的验签等操作;还有我们的加签操作等。今天记录一下调用三方接口后返回的接口如何解析;怎么拿到自己想要的东西。其实调用三方接口分为几步1、采用哪种方式调用三方接口,这种依赖于第三方......
  • 《无畏契约》directx runtime出现错误的原因以及解决方法
    在享受《无畏契约》(Valorant)等射击游戏时,偶尔会遇到DirectXRuntime错误,这可能会导致游戏无法启动或者运行不稳定。本文旨在深入探讨DirectXRuntime错误产生的常见原因,并提供一系列有效的解决方案。一、DirectXRuntime错误的原因1.显卡驱动程序过时显卡驱动程序是连接......
  • msvcr100.dll丢失的解决方法,6招排除故障,轻松解决dll丢失难题!
    msvcp100.dll丢失怎样修复呢?MSVCP100.DLL是微软的动态链接库(DLL)文件,用于确保Windows上程序的正常运行。如果这个文件被删除或损坏,您可能会碰到“msvcr100.dll丢失”的错误。这种错误可能在您尝试打开或安装程序、启动或关闭系统,以及进行Windows安装时出现。有些用户甚至在......
  • Spring Boot应用的安全性加固方法
    SpringBoot应用的安全性加固方法大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!随着网络攻击的日益增多,确保SpringBoot应用的安全性变得尤为重要。本文将介绍几种加固SpringBoot应用安全性的方法,并通过代码示例来展示其实现。使用HTTPS确保数据......
  • Kali Linux 三种网络攻击方法总结(DDoS、CC 和 ARP 欺骗)
    一、引言在当今数字化的时代,网络安全成为了至关重要的议题。了解网络攻击的方法和原理不仅有助于我们增强防范意识,更是网络安全领域专业人员必备的知识。KaliLinux作为一款专为网络安全专业人员和爱好者设计的操作系统,提供了丰富的工具来模拟和研究各种网络攻击手段。本文......
  • 电脑主板品牌型号序列号机器码错乱修改恢复方法
    维修主板BIOS,刷原厂BIOS文件没有序列号型号等等信息,或者各种原因消失如何恢复呢?1.重启电脑按del进入BIOS设置界面,查看主板详细型号。2.到主板官网下载对应型号的BIOS文件。3.amibcp打开bios文件,DMITables栏,里面有详细的主板品牌型号序列号版本信息,可以直接复制下来。4.电......
  • 搜参,序列生成,优化方法——穷举,greedy search,beamsearch,bayessearch, viterbisearch
    exhaustivesearch(穷举搜索)最直观的方法就是穷举所有可能的输出序列。从所有的排列组合中找到输出条件概率最大的序列。穷举搜索能保证全局最优,但计算复杂度太高,当输出词典稍微大一点根本无法使用。greedysearch(贪心搜索)贪心搜索在解码下一个选择的时候,直接选择条件概率最......
  • 易优adv功能:获取广告列表内容-Eyoucms标签手册
    【基础用法】名称:adv功能:获取广告列表内容。语法:{eyou:advpid='1'row='3'}<ahref='{$field.links}'><imgalt='{$field.title}'src='{$field.litpic}'/></a>{/eyou:adv}参数:pid=''广告位置IDrow=�......
  • 易优Field获取channelartlist标签里的字段值-Eyoucms标签手册
    【基础用法】名称:field功能:获取channelartlist标签里的字段值,field标签只能在channelartlist标签里使用。语法:{eyou:channelartlisttypeid='栏目ID'type='son'row='20'}{eyou:fieldname='typename'/}{/eyou:channelartlist}参数:name=''字段名......