链表
文章平均质量分 65
链表的相关题目及方法
THE_GREATEST
这个作者很懒,什么都没留下…
展开
-
环形链表 II
环形链表 II 一、题源: 142. 环形链表 II 问题描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递 ,仅仅是为了标识链表的实际情况。 不允许修改 链表。 二、 思路: 1、暴力原创 2022-05-05 22:05:45 · 595 阅读 · 0 评论 -
链表相交题
滑动窗口法 一、题源: 209. 长度最小的子数组 问题描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 二、 思路: 1、暴力解法 最容易想到的方法就是直接对数组进行遍历,然后再从遍历的位置开始查找符合条件的子数组。 时间复杂度:O(n2)O(n^2 )O(n2) 空间复杂度:O(1)O(1)原创 2022-05-05 21:12:20 · 363 阅读 · 0 评论 -
反转链表题
反转链表 一、题源: 206. 反转链表 问题描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 二、 思路: 1、头插法 将这个链表上的结点依次头插到一个新的链表。为了简化头插代码,在新的链表上引入了虚拟头结点 参考代码如下 struct ListNode* reverseList(struct ListNode* head){ struct ListNode* returnHead = (struct ListNode*)malloc(sizeof(struct List原创 2022-05-05 10:37:01 · 603 阅读 · 0 评论 -
设计链表(虚拟头节点)
设计链表(虚拟头节点) 一、题源: 707. 设计链表 问题描述 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。 在链表类中实现这些功能: get(index): 获取链表中第 index 个节点的值。如果索引无效,则返回 -1 。 addAtHead(val): 在链表原创 2022-05-04 21:56:07 · 173 阅读 · 0 评论 -
虚拟头结点
移除列表元素 一、题源: 203. 移除列表元素 问题描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 二、 思路: 1、直接操作 从头节点开始遍历,判断指针指向的下一个节点值等不等于val,等于的话,执行删除下个节点的操作 参考代码如下 struct ListNode* removeElements(struct ListNode* head, int val){ struct ListNode*原创 2022-05-04 21:41:33 · 777 阅读 · 0 评论