GolangStudy Online Courses
GolangStudy Online Courses
Home
课程
Golang
Kubernetes
算法/数据结构
Leetcode
面试真题
链表 list
2. 两数相加
题目 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 输入: l1 = [2,4,3], l2 = [5,6,4] 输出: [7,0,8] 解释: 342 + 465 = 807. 示例 2: 输入: l1 = [0], l2 = [0] 输出: [0] 示例 3:
Nov 27, 2022
19. 删除链表的倒数第 N 个结点
题目 给你一个链表,删除链表的倒数第 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] 题解 解法 1:使用 Golang SDK 链表 参考资料:
Nov 28, 2022
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:
Nov 29, 2022
数据结构-链表
链表概念 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 特点 效率 插入:O(1) 访问:O(n) 由于不必须按顺序存储,链表在插入的时候可以达到 O(1) 的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要 O(n) 的时间。 优点 使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 缺点 链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。 常见的链表 单向链表 单向循环链表 双向链表 双向循环链表 单向链表 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。 链表是由结点构成,head 指针指向第一个成为表头结点,而终止于最后一个指向 NULL 的指针。
Nov 27, 2022
Go 源码解读:双向链表 list
源码地址:container/list/list.go 源码版本:1.17.6 双向链表是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。 所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 Golang sdk 中实现了双向链表,路径为container/list/list.go,我们可以学习一下 sdk 中的实现。 思维导图预习 包 package // 包 list 实现了双向链表 // // 以下是遍历双向链表的方法 (在这里 l 是一个 *List): // for e := l.
Oct 14, 2022