![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
data struct
文章平均质量分 68
橘子掀开夜晚
一定要爱着点什么,恰似草木对光阴的钟情。
展开
-
图的基本知识与操作
图 (graph)是一个二元组 G=(V(G),E(G))由 **点集 (vertex set)和边集E(G)(edge set)**组成,常用G=(V,E)表示图。原创 2022-11-15 17:41:59 · 909 阅读 · 0 评论 -
huffman
结点的带权路径长度为从该结点到树根之间的路径长度与结点上的权值的乘积。 树的带权路径长度WPL最小的二叉树称为最优二叉树或者哈夫曼树。中选取两颗权值最小的二叉树作为左右子树构造一个新的二叉树,新二。💥两个结点的路径:由树中一个结点到另一个结点的分支构成。💨树的路径的长度:根节点到每个结点的路径的长度之和。树的根结点的权值为其左右子树根结点权值之和。完全二叉树就是这种路径长度最短的二叉树。💟路径的长度:路径上的分支数目。原创 2022-10-30 21:03:58 · 70 阅读 · 0 评论 -
二叉树的基本芝士
树的相关基础知识原创 2022-10-24 10:26:37 · 264 阅读 · 0 评论 -
leetcode 相同的树
相同树的判断原创 2022-10-11 23:12:44 · 62 阅读 · 0 评论 -
树状数组(BIT)基本操作
树状数组(Binary Index Tree, BIT)原创 2022-10-09 15:22:21 · 153 阅读 · 0 评论 -
栈的基本知识
栈是限制仅在表的一端(表尾)进行操作(插入和删除)的线性表。原创 2022-10-02 22:13:33 · 162 阅读 · 0 评论 -
链表刷题总结
链表刷题总结原创 2022-05-06 10:17:37 · 350 阅读 · 0 评论 -
Floyd龟兔算法(判圈算法)
目录1.实质:2.可以解决解决的问题:1 .检测是否是环。2.入环的第一个节点。3.环的长度。1.实质:一种指针算法,使用两种移速不同的指针检测是否有环2.可以解决解决的问题:1.检测是否是环。2.环的起点节点。3.环的长度。1 .检测是否是环。 定义了两个速度不同的指针,在链表上移动,如果链表中有环,快指针先一步进入环然后循环,当慢指针也进入环后,两个指针都在环...原创 2022-04-25 20:30:08 · 683 阅读 · 0 评论 -
142. 环形链表 II(leetcode)
142. 环形链表 II难度中等给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例 1:输入:head =.原创 2022-04-25 20:29:10 · 75 阅读 · 0 评论 -
92. 反转链表 II(leetcode)
92. 反转链表 II难度:中等给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例 2:输入:head = [5], left = 1, right = 1输出:[5]提示: ...原创 2022-04-23 22:38:41 · 1615 阅读 · 0 评论 -
82. 删除排序链表中的重复元素 II(leetcode)
82. 删除排序链表中的重复元素 II难度:中等给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。示例 1:输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]示例 2:输入:head = [1,1,1,2,3]输出:[2,3]提示: 链表中节点数目在范围 [0, 300] 内 -100 <= Node.val <= 100 题...原创 2022-04-22 19:58:59 · 416 阅读 · 0 评论 -
删除链表中的节点
237. 删除链表中的节点(leetcode)请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。题目数据保证需要删除的节点 不是末尾节点 。示例 1:输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:指定链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9示例 2:输入:head...原创 2022-04-22 10:50:56 · 860 阅读 · 2 评论 -
合并两个有序链表
21. 合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入: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 <= N...原创 2022-04-18 20:46:17 · 532 阅读 · 2 评论 -
旋转链表(leetcode)
61. 旋转链表给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例 2:输入:head = [0,1,2], k = 4输出:[2,0,1]提示: 链表中节点的数目在范围 [0, 500] 内 -100 <= Node.val <= 100 0 <= k <= 2 * 10...原创 2022-04-17 13:46:39 · 1505 阅读 · 0 评论 -
删除链表的倒数第 N 个结点(leetcode)
19. 删除链表的倒数第 N 个结点(leetcode)难度中等1961给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示: 链表中结点的数目为 sz 1 <= sz <= 3...原创 2022-04-14 08:56:00 · 1301 阅读 · 0 评论 -
环形链表(leetcode)
141. 环形链表难度简单1453给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。链接:力扣思路:运用Floyd判圈算法定义了两个速度不同的指针,在链表上移动,如果链表中有环,快指针先一步进入环然后循...原创 2022-04-12 18:28:30 · 149 阅读 · 0 评论 -
复制带随机指针的链表
138. 复制带随机指针的链表(leetcode)难度:中等给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。例如,如果原链表中有 X 和原创 2022-04-11 19:48:42 · 90 阅读 · 0 评论 -
160.相交链表(leetcode)
160.相交链表给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。来源:力扣(LeetCode)链接:力扣思路:一开始我想的是遍历相交链表,从第一个相交节点之后的节点都会重合,所以我便想到了链表的倒置,再从头到尾遍历,当节点不同时的前一个结点就是.原创 2022-04-09 21:04:07 · 507 阅读 · 0 评论