![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
链表
文章平均质量分 66
链表相关题目
青山的青衫
这个作者很懒,什么都没留下…
展开
-
LeetCode142.环形链表II【双指针,链表判环,找入环点的两方法】
LeetCode142.环形链表II1.题目2.思路两个步骤:1.判定是否有环——快慢指针法要注意的是:一定会相遇,因为进环后相当于fast指针每次前移一个追逐slow指针2.寻找环的入口(1)从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点。3.代码实现(1)判定是否有环这里是引用...原创 2022-02-07 14:51:01 · 1048 阅读 · 0 评论 -
LeetCode面试题 02.07. 链表相交【双指针】
LeetCode面试题 02.07. 链表相交文章目录LeetCode面试题 02.07. 链表相交1.题目2.思路3.代码实现1.题目2.思路要注意的是:1.如果两链表相交,从相交点到表尾都是相同的结点,即合二为一了。2.这里的相交利用引用来判定!即结点的地址,而不是节点的数值!思路:1.统计两个链表长度,求差。另:我在这里多考虑了一步,走到最后一个结点时判断下它们是否是同一个,即判断两个链表是否相交。2.按照表尾对齐的形式,长链表的指针先走,走到和短链表的表头对齐为止。3.原创 2022-02-06 12:51:52 · 334 阅读 · 0 评论 -
LeetCode19. 删除链表的倒数第 N 个结点【双指针】
LeetCode19. 删除链表的倒数第 N 个结点原创 2022-02-06 00:04:06 · 638 阅读 · 0 评论 -
LeetCode206. 反转链表【双指针和递归】
LeetCode206.反转链表文章目录LeetCode206.反转链表1.题目2.思路3.代码实现(1)双指针应用(2)递归方法1.题目2.思路1.我最初的设想是把最后一个节点依次前移,后来发现有两个困难。一是单向链表没办法访问已知结点的前驱结点,犯了一些错误。比如:(1) LinkNode*q; q->next = p; //q根本没指向p的前驱(2)LinkNode *q = dummyHead; q->next = p; //这样会变成dummyHead的n原创 2022-02-05 22:19:00 · 441 阅读 · 0 评论 -
LeetCode707. 设计链表
LeetCode707. 设计链表文章目录LeetCode707. 设计链表1.题目2.思路3.代码实现(1)按函数分别实现(2)完整代码1.题目2.思路一共五个函数,对应链表的五种基本操作:查找结点、头插、尾插、在某结点前插、删除。下面分开实现。3.代码实现(1)按函数分别实现函数接口class MyLinkedList {public: MyLinkedList() {} int get(int index) {} void addAt原创 2022-02-05 12:22:22 · 91 阅读 · 0 评论 -
LeetCode203. 移除链表元素
LeetCode203. 移除链表元素文章目录LeetCode203. 移除链表元素1.题目2.思路3.具体代码实现不使用哨兵结点(1) 先特判头结点(2)最后判断头结点使用哨兵结点1.题目2.思路整体思路就是删去结点,但是有以下两种实现方式。(1)不使用哨兵结点相对来说更复杂,因为不好处理头结点,有两种思路。a.一开始特判头结点,时间复杂度较高。b.最后再判定头结点。(2)使用头结点3.具体代码实现创建链表及函数接口 struct ListNode { int va原创 2022-02-03 19:20:34 · 625 阅读 · 0 评论 -
链表基础知识
链表基础知识链表的类型链表的类型单链表双链表循环链表存储方式代码——链表的定义链表的操作删除结点添加结点性能分析链表的类型什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点是又两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链接的入口点称为列表的头结点也就是head。链表的类型单链表刚刚即是双链表单链表中的节点只能指向节点的下一个节点。双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节原创 2022-02-03 14:37:48 · 1762 阅读 · 0 评论