链表
文章平均质量分 59
Zero_979
计算机科学与技术硕士在读
展开
-
LeetCode 热题 C++ 200. 岛屿数量 206. 反转链表 207. 课程表 208. 实现 Trie (前缀树)
给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。原创 2023-02-27 13:34:31 · 325 阅读 · 0 评论 -
LeetCode 热题 C++ 148. 排序链表 152. 乘积最大子数组 160. 相交链表
三道力扣题原创 2023-02-25 11:15:27 · 554 阅读 · 0 评论 -
LeetCode 热题 C++ 141. 环形链表 142. 环形链表 II(详解!)
给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。pos。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。否则,返回false。true链表中有一个环,其尾部连接到第二个节点。true链表中有一个环,其尾部连接到第一个节点。false链表中没有环。-1。原创 2023-02-24 10:16:18 · 412 阅读 · 0 评论 -
LeetCode 热题 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 4. 寻找两个正序数组的中位数 5. 最长回文子串
当长度大于2的时候,我们要看里面的结构,dp[i+1][j-1]是否为1,如果为1说明它里面就是个回文数,比较两端是否相等即可。s[i]==s[j]则dp[i][j]=1。当i~j长度为2以及2以内时,只要s[i]==s[j],则它就是回文数,所以dp[i][j]=1.不理解为什么这题标记为困难,这就是最简单的把两个递增序列合并成一个递增序列。dp[i][j]代表s[i][j]是否是回文数。首先初始化dp数组,所有dp[i][i]都是1.就是模拟加减运算,注意进位就好。暴力过不去,所以用了动态规划。原创 2022-09-14 21:30:58 · 147 阅读 · 0 评论 -
【剑指Offer】JZ18 删除链表的节点
题目地址:删除链表的节点_牛客题霸_牛客网题目:描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。1.此题对比原题有改动2.题目保证链表中节点的值互不相同3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点数据范围:0<=链表节点值<=100000<=链表长度<=10000示例1输入:{2,5,1,9},原创 2021-11-12 13:43:43 · 115 阅读 · 0 评论 -
【剑指Offer】JZ22 链表中倒数最后k个结点
题目地址:链表中倒数最后k个结点_牛客题霸_牛客网题目:描述输入一个长度为 n 的链表,设链表中的元素的值为 ai,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。数据范围:0 \leq n \leq 10^50≤n≤105,0 \leq a_i \leq 10^90≤ai≤109,0 \leq k \leq 10^90≤k≤109要求:空间复杂度O(n)O(n),时间复杂度O(n)O(n)进阶:空间复杂度O(1)O(1),时...原创 2021-11-12 13:36:40 · 566 阅读 · 0 评论 -
【剑指Offer】JZ76 删除链表中重复的结点
题目地址:删除链表中重复的结点_牛客题霸_牛客网题目:描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5数据范围:链表长度满足n∈[1-1000],链表中的值满足进阶:空间复杂度 O(n),时间复杂度例如输入{1,2,3,3,4,4,5}时,对应的输出为{1,2,5},对应的输入输出链表如...原创 2021-11-05 23:07:34 · 142 阅读 · 0 评论 -
【剑指Offer】JZ23链表中环的入口结点
题目地址:链表中环的入口结点_牛客题霸_牛客网题目:描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围:n\le10000n≤10000节点值范围:[1,10000]要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)例如,输入{1,2},{3,4,5}时,对应的环形链表如下图所示:可以看到环的入口结点的结点值为3,所以返回结点值为3的结点。输入描述:输入分为2段,第一段是入环前的链表部分,第二段...原创 2021-11-05 20:27:20 · 128 阅读 · 2 评论 -
【剑指Offer】JZ52两个链表的第一个公共结点
题目地址:两个链表的第一个公共结点_牛客题霸_牛客网题目:描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围:n \le 1000n≤1000要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)例如,输入{1,2,3},{4,5},{6,7}时,两个无环的单向链表的结构如下图所示:可以看到它们的第一个公共结点的结点值为6,所以返回结点值为...原创 2021-11-04 16:13:24 · 130 阅读 · 1 评论 -
【剑指Offer】JZ24反转链表(C++)
题目地址:反转链表_牛客题霸_牛客网题目:描述给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头。数据范围:n\leq1000n≤1000要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例1输入:{1,2,3}返回值:{3,2,1}示例2输入:{}返回...原创 2021-11-04 13:17:35 · 397 阅读 · 0 评论 -
【剑指Offer】JZ16合并两个排序的链表
题目地址:牛客网题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。示例1输入{1,3,5},{2,4,6}返回值{1,2,3,4,5,6}思路:因为原本两个链表就是递增的,所以只要遍历就可以了。坑点在于,C++新建链表要new开辟空间。代码:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL)原创 2021-03-07 19:59:24 · 95 阅读 · 0 评论