| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 代码随想录算法训练营第四天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II -> 正文阅读 |
|
[数据结构与算法]代码随想录算法训练营第四天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II |
24. 两两交换链表中的结点题目链接:24. 两两交换链表中的结点 链表中结点交换的题目一般在思路上不会太难,要注意的就是在操作的过程中不能断链。
代码片段为:
19.删除链表的倒数第N个结点题目链接:19.删除链表的倒数第N个结点 本题最大的问题在于如何找到倒数的某个结点,不同于数组能够在 O ( 1 ) O(1) O(1)时间查找到任意位置的元素,在链表中需要找到某个结点,需要从链表头开始遍历。运用双指针的话,能够实现遍历一轮找到结点并进行删除。只需要让fast指针先走N步,然后fast和slow指针同时移动,直到fast指向链表尾,此时slow指向的就是倒数N个节点的前驱,便很容易进行删除操作。
面试题 02.07. 链表相交题目链接:面试题 02.07. 链表相交
提供一种时间复杂度在
O
(
n
+
m
)
O(n + m)
O(n+m)的解题思路。首先计算出两个链表的长度,主要为了得到长度差值 代码如下:
142.环形链表II题目链接:142.环形链表II 参考文章链接:代码随想录_142.环形链表II (强烈建议参考代码随想录中卡哥对本题的解析,非常透彻) 下面进行分析,定义快慢指针 具体解释:为什么一定会在环中相遇,而不是会错开呢?首先能够知道,两个指针如果能相遇,一定是在环中相遇。且是 不妨来看下图中几种情况
证实了一定会相遇这一点之后,下面来找到环的入口。
相遇时 我们的目的是找出入口节点的位置,也就是 n一定是大于等于1的,不妨先假设 代码如下:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 20:37:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |