| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 链表OJ练习__[回文链表相交链表环状链表随机链表]全面解析 -> 正文阅读 |
|
[数据结构与算法]链表OJ练习__[回文链表相交链表环状链表随机链表]全面解析 |
目录 ? 解题思路:????????图片解析:????????代码示例: ? ? 解题思路:????????方法一:????????方法二 :? ? ? 方法对比:????????代码示例: ? ? 解题思路:????????证明过程:????????代码示例: ? ? 解题思路:?????? ?画图分析:????????代码示例: 回文链表:牛客_链表的回文结构? 解题思路:? ? ? ? 1.先用快慢指针找到中下节点力扣876_链表中间节点 ? ? ? ? 2.反转后面部分节点力扣206_反转单链表 ? ? ? ? 3.进行判断 ? ? ? ?图片解析:代码示例:
相交链表:力扣160_相交链表? ? 解题思路:
?方法对比:? ? ? ? 方法一相对于方法二,优点在于更易于理解.并且在大多数情况下时间复制度是相同的. ? ? ? ? 而方法二的优势就在于,当链表A和B一样长的时候,他并不需要先遍历完链表长度,就可以直接得到答案.?且实现代码也更为简洁.(稍后你就会看见方法二简洁的代码,而方法一由于代码实现并非这么难,这里就不做演示) 代码示例:
环状链表:力扣142_环状链表入口点? ? 解题思路:? ? ? ?1.快慢指针 fast走2步 slow走1步,如果链表有环,则必然相遇.(就像操场跑步,跑的快的必然追上跑的慢的) ????????????????????????????????????????为什么fast是走2步,而不能是走3步或4步 ? ? ?? 2.如果有环,一个指针从相遇点出发,另一个指针从入口点出发,每次走一步,则必然在入口点相遇 ? ? ? ?证明过程:???代码示例:
随机链表:力扣138_随机链表深拷贝? ? 解题思路:? ? ? ? ? 1.拷贝节点在原来的节点后面. ? ? ? ? ? 2.拷贝random节点. p->next->random=p->random->next ? ? ? ? ? 3.拆分链表? ? ?? ? ? ? ? 画图分析:?代码示例:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:40:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |