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

链表part02

链表的题目,如果涉及到对头节点的改动的话,就必须要用个哨兵节点dummy来执行头节点,不然不好多头节点进行移除或者换位的操作。
两两交换链表中的节点

/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */funcswapPairs(head*ListNode)*ListNode{dummy:=&ListNode{Next:head}pre:=dummyforhead!=nil&&head.Next!=nil{// 第一步由dummy位置指向2pre.Next=head.Next// 存储位置3nxt:=head.Next.Next// 第二步由位置2指向位置1head.Next.Next=head// 第三步由位置1指向位置3head.Next=nxt pre=head head=head.Next}returndummy.Next}

删除链表的倒数第N个节点
可以用双指针来做这道题,注意这里的位置问题,首先快指针,因为要从dummy开始走起,所以它要走n+1步,所以第一次循环更新fast的位置时,要让它从0遍历到n,这样待会slow和fast一起走的时候,当fast走到nil时,slow刚好走到倒数第n个数的前一个位置。

/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */funcremoveNthFromEnd(head*ListNode,nint)*ListNode{dummy:=&ListNode{Next:head}// 采用双指针slow,fast:=dummy,dummyfori:=0;i<=n;i++{// 注意i要 <= n,因为是从dummy开始走的// 所以要走n步slow待会才能走到删除节点的前一个位置fast=fast.Next}forfast!=nil{fast=fast.Next slow=slow.Next}slow.Next=slow.Next.Nextreturndummy.Next}

链表相交的位置
这道题可以一起遍历两条链表,如果两条链表的长度不一的话,可以把两条链表连起来遍历,比如说用 l1,l2分别指向两条链表headA,headB,当l1把headA遍历完之后,再指向headB继续遍历,当l2把headB遍历完之后,再指向headA继续遍历,这样最多O(2n)就能够找到相交的节点。

/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */funcgetIntersectionNode(headA,headB*ListNode)*ListNode{l1,l2:=headA,headBforl1!=l2{ifl1!=nil{l1=l1.Next}else{l1=headB}ifl2!=nil{l2=l2.Next}else{l2=headA}}returnl1}
http://www.cnnetsun.cn/news/37797.html

相关文章:

  • Patroni高可用性架构深度解析:从核心原理到生产实践
  • StickerBaker:基于Elixir与Phoenix的AI贴纸生成架构解析
  • 毕业设计 深度学习yolov11痤疮检测医疗辅助系统(源码+论文)
  • AppSync Unified:iOS设备应用签名验证的终极解决方案
  • 大麦APP抢票技术分享
  • C语言编程练习(二)
  • GQRX:开启无线电探索之旅的强大开源工具
  • 常见进制介绍以及之间的转换(二)
  • Utterances评论系统终极使用指南:5分钟快速上手教程
  • CodeLlama-34b-Instruct-hf 终极使用指南:从零开始掌握代码生成利器
  • 63、安全终端与文件传输工具全解析
  • 50、Python Web编程:CGI与WSGI详解
  • 视觉语义映射:基于《神奈川冲浪里》的代码配色系统设计
  • HunyuanVideo-Foley:多模态扩散模型的工程化突破与音效生成技术重构
  • 终极指南:5步快速上手fastText预训练模型
  • 【单片机毕业设计】143.1基于单片机stm32塔吊控制反馈物联网嵌入式项目程序开发系统
  • MediaPipe Hands终极指南:手部追踪技术完整解析
  • 25岁,转行网络安全工程师来还来得及吗?手把手带你入门到精通
  • 如何3步快速上手鲁班H5表单数据收集系统:从小白到高手的完整指南
  • 完整掌握DNVGL-ST-0126风机支撑结构:权威资源快速获取指南
  • 15、线程取消机制的深入解析与应用
  • 20、POSIX 线程编程中的关键函数与机制解析
  • 如何快速提升API文档质量:5个自动化检查工具对比
  • 道路缺陷检测-道路病害-YOLO模型-毕业设计
  • 9、深入解析 SQL 注入漏洞:原理、案例与防范
  • GOCAD三维地质建模
  • 2025 年网络安全学习路线:从零基础到实战大神,避开 90% 的坑(非常详细,附工具包以及学习资源包)
  • Reachability隐私合规完全指南:iOS 17+一键配置解决方案
  • 初等数论终极指南:密码学必备的5个核心数学原理
  • 中文论文格式模板使用指南