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

Day9 |删除链表倒数第N个节点 相交链表

第九天,明天准备回顾总结一下之前的日记嘞。

题目:删除链表的倒数第 N 个结点(LeetCode 19)

描述:给你一个链表,删除链表的倒数第n个结点,并返回链表的头结点。

解法:快慢指针

定义两个指针,相差x步,当快指针走到最后节点时,慢指针刚好指向删除节点。

public class Solution { public ListNode RemoveNthFromEnd(ListNode head, int n) { ListNode reHead = new ListNode(-1); reHead.next = head; ListNode poi_1 = reHead; ListNode poi_2 = reHead; //拉开n的差距 for(int i = 0;i < n;i++){ poi_1 = poi_1.next; } while(poi_1.next != null){ poi_1 = poi_1.next; poi_2 = poi_2.next; } poi_2.next = poi_2.next.next; return reHead.next; } }

题目:相交链表

描述:找到两个单链表相交的起始节点。如果不相交,返回null

解法一:哈希表

把一个列表的所有节点都存进哈希表,然后遍历另一个列表,第一个在哈希表中出现的节点就是相交点。

public class Solution { public ListNode GetIntersectionNode(ListNode headA, ListNode headB) { Hashtable table = new Hashtable(); ListNode poi1 = headA; while (poi1 != null) { table.Add(poi1, poi1.val); poi1 = poi1.next; } ListNode poi2 = headB; while (poi2 != null) { if (table.ContainsKey(poi2)) { return poi2; } poi2 = poi2.next; } return null; } }

解法二:双指针

public class Solution { public ListNode GetIntersectionNode(ListNode headA, ListNode headB) { ListNode p1 = headA; ListNode p2 = headB; while (p1 != p2) { p1 = p1 != null ? p1.next : headB; p2 = p2 != null ? p2.next : headA; } return p1; // 要么是交点,要么是 null } }

一开始我尝试过不处理走到末尾的指针,让它继续取next,结果空引用报错。于是让指针“跳到另一条路”重新跑。刚开始还担心会不会无限循环,后来画图算了一下,总路程一样,最终一定会同时变成null,不存在死循环。

这个解法让我想起一点歌词嘞。。。
我吹过你吹过的晚风
是否看过同样 风景
像扰乱时差留在错位时空
终是空 是空

http://www.jsqmd.com/news/1090715/

相关文章:

  • 技术突破:Python实现QQ音乐API数据解析与资源获取方案
  • DSVW:极简Web漏洞靶场实战指南,从SQL注入到XSS攻防演练
  • 解锁BT下载极速体验:trackerslist项目让你的下载速度飙升300%
  • 【操作系统】经典同步问题:读者-写者 / 哲学家进餐
  • 学习周报 Week 6:目标检测
  • 鸿蒙 ArkTS 实战:Recitation Timer 从状态建模到交互闭环完整解析
  • 2026世界杯AI案例适合写进大学生AI作品集吗
  • OpCore-Simplify:三十分钟完成黑苹果配置的智能化解决方案
  • 从零搭建Selenium自动化测试框架:Python+Pytest实战指南
  • 大模型项目进入生产后,真正难管的不是模型:一套 API 接入与向量检索运行手册
  • MyBatis 与 MyBatis-Plus 面试题汇总——从原理到实战
  • 3DMax新手避坑指南:模型导入、选择与显示的实战解析
  • 5个理由选择FreeShip Plus:零成本专业船舶设计完全指南
  • 应急电源深度实测:锂电池 vs 镁金属空气电池,6个核心维度选型对比
  • NifSkope深度解析:游戏文件编辑架构与扩展开发最佳实践
  • shader开发工具
  • ComfyUI BrushNet图像修复工作流终极配置指南:5个常见错误与解决方案
  • 告别“more than one device/emulator”困扰:精准定位与高效调试指南
  • ComfyUI-Impact-Pack终极指南:5个技巧让AI图像细节清晰如镜
  • DP159RGZ评估模块硬件设计与信号完整性调试实战解析
  • 鸿蒙 ArkTS 实战:Paper Reader 从状态建模到交互闭环完整解析
  • 从线芯排列到传输性能:深度解析超五类与六类水晶头的设计哲学与实战选择
  • 微信网页版访问受限?三分钟教你通过浏览器插件绕过限制
  • 异步爬虫 aiohttp 进阶实战——高并发采集的正确姿势
  • 鸿蒙 ArkTS 实战:Lab Record Book 从状态建模到交互闭环完整解析
  • Python 知识体系深度解析与学习指南
  • 【操作系统】经典同步问题:生产者-消费者
  • 李宏毅深度学习课程集成学习学习报告
  • AI模型能力演进与安全发布机制解析
  • 3分钟掌握HS2-HF Patch:一站式汉化去码解决方案终极指南