链表
大壮159
这个作者很懒,什么都没留下…
展开
-
简介 - 单链表
单链表中的每个结点不仅包含值,还包含链接到下一个结点的引用字段。通过这种方式,单链表将所有结点按顺序组织起来。、下面是一个单链表的例子:蓝色箭头显示单个链接列表中的结点是如何组合在一起的。结点结构以下是单链表中结点的典型定义:// Definition for singly-linked list.struct SinglyListNode { int val;...原创 2018-12-27 09:11:31 · 157 阅读 · 0 评论 -
添加操作 - 单链表
如果我们想在给定的结点prev之后,添加新值,我们应该:1.使用给定值初始化新结点cur; 2.将cur的“next”字段链接到prev的下一个结点next;3.将pre中的“next”字段链接到cur。与数组不同,我们不需要将所有元素移动到插入元素之后。因此,您可以在 O(1) 时间复杂度中将新结点插入到链表中,这非常高效。示例让我们在第二个结点 6 ...原创 2018-12-27 09:21:31 · 155 阅读 · 0 评论 -
删除操作 - 单链表
如果我们想从单链表中删除现有结点 cur,可以分两步完成:找到 cur 的上一个结点 prev 及其下一个结点 next; 接下来链接 prev 到 cur 的下一个节点 next。在我们的第一步中,我们需要找出 prev 和 next。使用 cur 的参考字段很容易找出 next,但是,我们必须从头结点遍历链表,以找出 prev,它的平均时间是 O(N),其中 N 是链表的长度。因此,删...原创 2018-12-27 09:36:15 · 131 阅读 · 0 评论 -
设计链表 C++算法 leetcode707
题目:设计链表设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索...原创 2018-12-27 10:02:30 · 714 阅读 · 0 评论 -
删除链表中的节点 C++算法 leetcode237
题目:删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点...原创 2019-01-29 09:06:14 · 434 阅读 · 0 评论 -
合并两个有序链表 C++算法 leetcode21
题目:合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解答:①具体思想就是新建一个链表,然后比较两个链表中的元素值,把较小的那个链到新链表中;②由于两个输入链表的长度可能不...原创 2019-01-28 10:59:28 · 346 阅读 · 0 评论