![](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 · 125 阅读 · 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 · 134 阅读 · 0 评论 -
160. 相交链表
160. 相交链表难度 简单给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交**:**题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。自定义评测:评测系统 的输入如下(你设计的程序 不适用 此输入):intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0listA - 第一个链表listB原创 2022-05-25 17:45:01 · 154 阅读 · 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 · 75 阅读 · 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 · 74 阅读 · 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 · 107 阅读 · 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 <= 100l1 和 l2 均按 非递减顺序 排列来源原创 2022-05-23 11:53:31 · 90 阅读 · 0 评论 -
链表中倒数第k个结点
链表中倒数第k个结点描述输入一个链表,输出该链表中倒数第k个结点。示例1输入:1,{1,2,3,4,5}返回值:{5}要找到倒数第k个,要从前往后走len-k个能不能遍历单链表1遍,就能知道倒数第k个节点使用快慢指针法 fast slowpublic ListNode FindKthToTail(ListNode head,int k) { if(k < 0){ return null; } if(head == null){原创 2022-05-23 10:38:20 · 71 阅读 · 0 评论 -
96. 不同的二叉搜索树
96. 不同的二叉搜索树给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。二叉搜索树的定义:二叉搜索树是一个有序树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉搜索树思路:dp[3],就是 元素1为头结点搜索树的数量 + 元素2为头结点搜索树的数量 + 元素3为头结点搜索树的数量元素1为头结点搜索树原创 2022-05-06 20:30:41 · 126 阅读 · 0 评论