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