尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【力扣hoot100----链表】
1.相交链表给你两个单链表的头节点headA和headB请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点返回null。先将链表从前往后遍历遇到空就指向另一个链表的头节点。因为xz)y(yz)x所以如果两条链表交点一定会同时到达那个交点的地方如果没有交点那就全部到达NULL。可以自己找一个例子试一下循环结束的条件就是PQ这对这两种情况都适用。最后返回NULL/交点总结当我们无路可走时试着走彼此的路. 如果到最后我找不到你那么你也找不到我我们没有缘分了//当我们无路可走时试着走彼此的路. 如果到最后我找不到你那么你也找不到我我们没有缘分了 class Solution { public: ListNode* getIntersectionNode(ListNode* headA, ListNode* headB) { ListNode* p headA; ListNode* q headB; while (p ! q) { p p ? p-next : headB; q q ? q-next : headA; } return p; } };2.链表反转我的思路是对链表进行原地箭头的反转定义三个指针prev指向curr前面的节点next指向curr后面的节点curr指向当前节点比较简单直接看代码吧class Solution { public: ListNode* reverseList(ListNode* head) { if(headnullptr||head-nextnullptr){ return head; } ListNode*currhead; ListNode*prevNULL; while(curr!NULL){ ListNode*nextcurr-next; curr-nextprev; prevcurr; currnext; } return prev; } };3.回文链表回文链表是指一个链表其节点值的序列从前往后读和从后往前读是一样的。回文链表具有对称性就像回文字符串一样。示例1 - 2 - 3 - 2 - 1 (奇数长度对称)1 - 2 - 2 - 1 (偶数长度对称)1 - 1 (两个相同元素)1 (单个元素总是回文)空链表 (空链表被认为是回文)思路这里采用迭代法递归也可以有时间再研究首先要找到链表的中间节点图片来源灵茶山艾府将中间到后面的链表进行反转。两个链表进行比对判断是否回文代码class Solution { // 找到中间节点 ListNode* middlenode(ListNode* head) { ListNode *slow head, *fast head; while (fast fast-next) { slow slow-next; fast fast-next-next; } return slow; } // 反转中间到后面的 ListNode* reversenode(ListNode* head) { ListNode *curr head, *prev nullptr; while (curr) { ListNode* next curr-next; curr-next prev; prev curr; curr next; } return prev; } public: bool isPalindrome(ListNode* head) { ListNode* mid middlenode(head); ListNode* head2 reversenode(mid);//这里注意不能传入整个链表只反转中间往后的。 while (head2) { if (head-val head2-val) { head head-next; head2 head2-next; } else { return false; // 不是回文 } } return true; } };4.环形链表判断一个链表里面是否有环思路快慢指针fast slow都从head出发如果他们相遇了说明链表里面存在环注意相遇点不一定是入环节点相遇了只代表有环/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: bool hasCycle(ListNode *head) { ListNode*fasthead; ListNode*slowhead; while(fastfast-next){ slowslow-next; fastfast-next-next; if(fastslow){ return true; } } return false; } };哈希表解决用哈希表存储已经遍历过的节点如果下一次的节点在哈希表里面存过了说明有环。unordered_set无序集合常用方法size()和empty():用于获取大小和集合是否为空find():用于查找键insert()和erase():用于插入和删除元素count():计算在无序集合容器中特定元素的出现次数基于无序集合的实际问题已知一个整数数组要找出其中的所有重复项。class Solution { public: bool hasCycle(ListNode *head) { unordered_setListNode* seen; while (head ! nullptr) { if (seen.count(head)) { return true; } seen.insert(head); head head-next; } return false; } };5.环形链表Ⅱ给定一个链表的头节点head返回链表开始入环的第一个节点。如果链表无环则返回null。如果链表中有某个节点可以通过连续跟踪next指针再次到达则链表中存在环。 为了表示给定链表中的环评测系统内部使用整数pos来表示链表尾连接到链表中的位置索引从 0 开始。如果pos是-1则在该链表中没有环。注意pos不作为参数进行传递仅仅是为了标识链表的实际情况。不允许修改链表。算法步骤Floyd判圈法判断是否有环快慢指针若快指针为null则无环返回null。找到相遇点快慢指针第一次相遇的位置。找入环点将慢指针移回头节点快指针留在相遇点两者每次各走一步再次相遇处即为入环点。从链表头出发的指针和从相遇点出发的指针再次相遇的那个节点这个节点才是入环点。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* detectCycle(ListNode* head) { ListNode* fasthead; ListNode* slowhead; while(fastfast-next){ slowslow-next; fastfast-next-next; if(slowfast){ while(slow!head){ slowslow-next; headhead-next; } return slow; } } return NULL; } };持续更新中。。。
RELATED

相关推荐

【AI 桌面自动化工具】 OpenClaw v2.7.9 完整搭建指南,Windows/macOS 双端实操教程(含安装包)

【AI 桌面自动化工具】 OpenClaw v2.7.9 完整搭建指南,Windows/macOS 双端实操教程(含安装包)

OpenClaw 自动化部署工具包|简化环境搭建,降低 AI 工具使用门槛 基础信息说明 兼容系统:Windows10/11 64 位、macOS 12 及以上版本 当前工具版本:v2.7.9 安装包大小:45.8MB 工具核心特点 整套搭建流程全部采用图形…

📅 2026/9/24 5:18:46
CGCS2000 与 WGS84 坐标系:3个关键椭球参数差异与坐标转换精度影响

CGCS2000 与 WGS84 坐标系:3个关键椭球参数差异与坐标转换精度影响

CGCS2000与WGS84坐标系:椭球参数差异对高精度应用的影响分析引言在自动驾驶路径规划和GIS空间分析领域,坐标系的精确转换直接关系到定位精度和空间数据匹配的可靠性。CGCS2000(中国2000国家大地坐标系)与WGS84(世界大地…

📅 2026/9/26 21:01:01
程序员量化交易实战 38:给日报归档建立索引

程序员量化交易实战 38:给日报归档建立索引

第 32 篇已经能把每日运行结果写成 JSON,第 33 篇能做简单历史汇总。第 38 篇补一个夹在中间的小工具:给归档目录建立索引。后面无论做 CLI 展示、页面列表还是人工排查,都不应该每次手写 glob 和 JSON 读取逻辑。索引项包含什么日报索引不需…

📅 2026/9/26 21:53:54
MORE NEWS

更多资讯

📰

智能从来不是工具,是结构:Copilot 救不了组织

WGA 在 2026 年 10 月发布的一份组织设计报告里引过一项覆盖 5179 名客服的研究:AI 辅助让人均处理量涨了 14%,新手和低技能员工涨了 34%。WGA 据此判断,工作流、排队、升级路径与汇报线,四样一样没碰。 人更快了,组织…

📰

2026日语能力考试N1、N2、N3、N4、N5历年真题及答案合集PDF(2010-2026年)

2026年7月日本语能力测试(JLPT)考试公告2026年度12月日本语能力测试(JLPT)N1–N5级别考试定于12月6日举行。备考资源汇总为协助考生系统备考,现提供以下历年真题资料:资源类型内容说明格式说明真题试卷2010…

📰

CAN 位时序与 500kbps 参数推导:HAL 里看不到 0x001A0005,但它就在那

做车载 ECU 诊断工具链,第一步绕不过去的是把 CAN 波特率配准。我用的是STM32F407ZGT6最小系统板, 它的 CAN_BTR 寄存器有 0x001A0005这个值,要把它从 42MHz 推导出来,才敢说"会 CAN"。一、先确认你的时钟到底是多少CAN 挂在 APB1 …

📰

门店上 AI 项目怎么立项排期?6 个阶段、8 到 12 周参考周期与 3 个最容易返工的节点

门店 AI 项目从立项到上线,中小连锁的参考周期是 8—12 周,其中约 6 周花在数据和评测上。大量项目返工不是因为模型不行,而是立项时把排期压得太紧、数据接入和验收指标没有提前定义清楚。 这篇笔记给一份可直接套用的立项排期表&#xff1a…

📰

2026 AI 全栈开发面试题:前端、后端、模型、部署一篇打通

✍️ 作者:王文峰(外号:神秘小峯 / 山峯)|中国国学、传统文化与代码爱好者的程序人生,期待你的关注和支持! 2026 AI 全栈开发面试题:四层考点全解析 一、AI 全栈 = 四层能力模型 二、交互层:流式是 AI 应用的门面 考点 1:流式输出选 SSE 还是 WebSocket? 考点 2:最…

📰

结合第三方视觉平台开发基本视觉应用,是机器视觉工程师的核心能力之一

结合第三方视觉平台开发基本视觉应用,是机器视觉工程师的核心能力之一。下面从平台选型、典型应用开发流程、关键技能点三个维度展开,帮你梳理一条可落地的路径。一、第三方视觉平台选型 不同平台定位差异较大,选型要看项目规模、预算和团队技…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬