链表
文章平均质量分 70
小锦鲤yaw
天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能
展开
-
【数据结构】哈希表详解以及代码实现
哈希表来源于数组的随机访问特性当我们需要查找某个指定元素时,用链表存储:从链表头遍历到链表尾部,时间复杂度为O(n)用平衡搜索树存储:时间复杂度为O(logn)用数组存储,如果知道了元素的索引,那么查找元素的时间复杂度就是O(1)原创 2023-04-12 15:04:05 · 1255 阅读 · 0 评论 -
【LeetCode】复制带指针的随机链表
构造这个链表的 深拷贝。 深拷贝应该正好由 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 指针和 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。例如,如果原链表中有 和 两个节点,其中 。那么在复制链表中对应的两个节点 和 ,同样有 。返回复制链表的头节点。用一个由 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 表示:你的代码 只 接受原链表的头节点 作为传原创 2023-04-06 15:01:14 · 257 阅读 · 2 评论 -
【LeetCode】两数相加(链表)
请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:示例 2:示例 3:提示:原创 2023-04-05 00:00:43 · 361 阅读 · 0 评论 -
【LeetCode】填充每个节点的下一个右侧节点指针
题目要求:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有next 指针都被设置为 NULL。原创 2023-04-03 19:27:46 · 258 阅读 · 2 评论 -
【LeetCode】Morris解法求二叉树的前中后序遍历(带图解)
Morris的整体思路就是将,以某个根节点开始,找到它左子树的最右侧结点之后与当前根节点进行连接,连接之后cur指针可以完整地顺着节点遍历完整个子树,直至为空。原创 2023-03-30 14:38:39 · 289 阅读 · 3 评论 -
【数据结构】队列的模拟实现
只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为。注意:Queue是个接口,在实例化时必须实例化LinkedList的对象,因为LinkedList实现了Queue接口。)是指允许两端都可以进行入队和出队操作的队列,出队列:进行删除操作的一端称为。1.环形队列通常使用数组实现。原创 2023-03-24 08:26:38 · 481 阅读 · 2 评论 -
【LeetCode】重排链表(递归,线性表,快慢指针+链表反转+合并链表)
题目:给定一个单链表L的头节点head,单链表L表示为:L0→ L1→ … → Ln-1→ Ln请将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→ …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。原创 2023-03-23 14:56:52 · 221 阅读 · 5 评论 -
相交链表(双指针和哈希表)
相交链表(双指针和哈希表)原创 2023-03-21 08:00:00 · 194 阅读 · 1 评论 -
判断链表是否为环形链表(快慢指针,哈希表,节点自指)
val = x;* }* }*///判空//定义快慢指针while(fast!* val = x;* }* }*///判空= null){x.next = x;x = next;原创 2023-03-21 02:00:00 · 165 阅读 · 2 评论 -
双向链表的实现
双向链表的实现原创 2023-03-20 14:04:54 · 70 阅读 · 0 评论 -
合并两个有序链表(迭代和递归)
合并两个有序链表(迭代和递归)原创 2023-03-20 18:23:06 · 800 阅读 · 0 评论