![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 60
小yang爱敲代码
这个作者很懒,什么都没留下…
展开
-
142. 环形链表 II
142. 环形链表 II 难度中等 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。 不允许修改 链表。 示例 1: 输入:head = [3,2,0,-4],原创 2022-05-25 20:25:00 · 131 阅读 · 0 评论 -
141. 环形链表
141. 环形链表 难度 简单 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。 如果链表中存在环 ,则返回 true 。 否则,返回 false 。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链原创 2022-05-25 18:02:05 · 137 阅读 · 0 评论 -
160. 相交链表
160. 相交链表 难度 简单 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交**:** 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 自定义评测: 评测系统 的输入如下(你设计的程序 不适用 此输入): intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0 listA - 第一个链表 listB原创 2022-05-25 17:45:01 · 162 阅读 · 0 评论 -
OR36 链表的回文结构
OR36 链表的回文结构 较难 通过率:29.47% 时间限制:3秒 空间限制:32M 知识点 链表栈 描述 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 测试样例: 1->2->2->1 返回:true 思路: 1.找中间结点 2.反转链表 3.判断回文结构 1.奇数 while(head != slow) 0.判断值是否相等 1.往原创 2022-05-25 15:32:06 · 78 阅读 · 0 评论 -
JZ76 删除链表中重复的结点
JZ76 删除链表中重复的结点 描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5 数据范围:链表长度满足 0 \le n \le 1000 \0≤n≤1000 ,链表中的值满足 1 \le val \le 1000 \1≤val≤1000 进阶:空间复杂度 O(n)*O*(n) ,时间复杂度 O(n) *O*(n) 例如输入{1,原创 2022-05-24 21:24:43 · 76 阅读 · 0 评论 -
CM11链表分割
CM11 链表分割 较难 描述 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 思路 (1)先令cur=head,把链表分成两段,第一段为小于目标值得,第二段为大于等于目标值的 (2)让cur遍历链表并判断节点放入哪一段里,直到cur==null; (3)若cur.val<x,把cur尾插法到第一段里(分为是否第一次,如是第一次放进去就行了),若cur.val>=x,一样的方原创 2022-05-23 12:42:04 · 117 阅读 · 0 评论 -
21. 合并两个有序链表
21. 合并两个有序链表 简单 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例 3: 输入:l1 = [], l2 = [0] 输出:[0] 提示: 两个链表的节点数目范围是 [0, 50] -100 <= Node.val <= 100 l1 和 l2 均按 非递减顺序 排列 来源原创 2022-05-23 11:53:31 · 95 阅读 · 0 评论 -
链表中倒数第k个结点
链表中倒数第k个结点 描述 输入一个链表,输出该链表中倒数第k个结点。 示例1 输入: 1,{1,2,3,4,5} 返回值: {5} 要找到倒数第k个,要从前往后走len-k个 能不能遍历单链表1遍,就能知道倒数第k个节点 使用快慢指针法 fast slow public ListNode FindKthToTail(ListNode head,int k) { if(k < 0){ return null; } if(head == null){原创 2022-05-23 10:38:20 · 73 阅读 · 0 评论 -
96. 不同的二叉搜索树
96. 不同的二叉搜索树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 二叉搜索树的定义: 二叉搜索树是一个有序树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树 思路: dp[3],就是 元素1为头结点搜索树的数量 + 元素2为头结点搜索树的数量 + 元素3为头结点搜索树的数量 元素1为头结点搜索树原创 2022-05-06 20:30:41 · 128 阅读 · 0 评论