LeetCode通关:听说链表是门槛,这就抬脚跨门而入
分门别类刷算法,坚持,进步!
刷题路线参考:https://github.com/youngyangyang04/leetcode-master
https://github.com/chefyuan/algorithm-base
链表基础
在开始刷题之前,我们最好先了解一下链表的一些基础知识,那么现在,我们开始吧。
链表是一种链式存储的线性表,不要求逻辑上相邻的数据元素在物理位置上也相邻。
单链表
一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的引用。也可以称之为数据域和指针域。
入口节点称为头结点,最后一个节点指向null。
如图所示:
双链表
双链表,顾名思义,是有两个方向的链表。
每个节点除了有指向下一个节点的引用,还有指向上一个节点的引用。
双链表除了可以从前往后遍历,还可以从后往前遍历。
循环链表
循环链表,就是最后一个节点的后继指向头结点,头节点的前驱指向最后一个节点。
链表的存储方式
我们知道链表在内存中不是连续分配的。链表是通过指针域的指针链接内存中的各个节点。
所以链表在内存中是散乱分布在内存中的某地址上,分配机制取决于操作系统的内存管理。
链表的定义
链表的定义主要包含两个部分:数据域和指针域。
在Java中因为屏蔽了指针的存在,我们的定义可以是数据,后继/前驱节点。
- 单链表:
public class ListNode {int val;ListNode next;ListNode(int x) { val = x; }}
- 双链表:
public class ListNode {int val;ListNode prev;ListNode next;ListNode(int x) { val = x; }}
链表基本操作
我们以单链表为例,来看一下链表的一些基本操作:
- 删除节点
- 插入节点
图中的插入和删除的时间复杂度都为O(1)
。但是需要注意,这里的情况是插入和删除已经知道前趋节点的情况。
如果,还需要检索相应的节点,那么时间复杂度是O(n)
。
链表操作
LeetCode203. 移除链表元素
☕ 题目:203. 移除链表元素 (https://leetcode-cn.com/problems/remove-linked-list-elements/)
LeetCode通关:听说链表是门槛,这就抬脚跨门而入相关推荐
- LeetCode 92反转链表Ⅱ93复制ip地址94二叉树的中序遍历
微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...
- LeetCode篇之链表:1290(二进制链表转整数)
LeetCode篇之链表:1290-->二进制链表转整数 1290. 二进制链表转整数 题目: 解题思路: 源码: 改进: 踩坑点: 1290. 二进制链表转整数 题目: 解题思路: 1.先遍历 ...
- LeetCode Python实现 链表简单部分
LeetCode Python实现 链表简单部分 我以前完全没有写过关于链表的东西,node.val=node.next.val#当前值被后一个值覆盖node.next=node.next.next# ...
- [链表|多解法] leetcode 19 删除链表的倒数第N个节点
[链表|多解法] leetcode 19 删除链表的倒数第N个节点 1.题目 题目链接 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2-&g ...
- LeetCode:旋转链表【61】
LeetCode:旋转链表[61] 题目描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5- ...
- 链表排序---迭代版本归并算法 + [leetcode]148. 排序链表
前言: 对于链表来说,排序首选应该是归并算法 维基百科上有归并算法的迭代版本和递归版本 基于数组实现的. https://zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B ...
- 学长冷月带你怒刷LeetCode之反转链表
本文目录 前言 题目描述 冷月题解 总结一下 前言 链表的操作是数据结构中最基础的算法之一,反转列表也是一道经典的笔试题.很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间 ...
- LeetCode 142. 环形链表 II
LeetCode 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如 ...
- 【Leetcode -61.旋转链表 -82.删除排序链表中的重复元素Ⅱ】
Leetcode Leetcode -61.旋转链表 Leetcode -82.删除排序链表中的重复元素Ⅱ Leetcode -61.旋转链表 题目:给你一个链表的头节点 head ,旋转链表,将链表 ...
- 【LeetCode通关全记录】658. 找到 K 个最接近的元素
[LeetCode通关全记录]658. 找到 K 个最接近的元素 题目地址
最新文章
- CentOS7在防火墙开启与关闭以及端口操作
- 使用Dagger 2在GWT中进行依赖注入
- mysql 删除重复数据_日常答疑|MySQL删除重复数据踩过得坑
- jmx监控java进程_用VisualVM远程监控Java进程
- JavaScript学习之—prototype
- SublimeText集成印象笔记插件简略步骤
- sql注入与sqlmap工具使用
- 右脑记忆法的个人理解
- 亚马逊中国发布2015图书排行榜
- 【读书笔记】《M型社会》大前研一
- 【转载】Ansys中的阻尼
- 多个域名指向一个ip
- mysql 空格显示问号_空格变成问号
- Linux 之父亮相,这个开源社区要“搞大事”
- 软电话对接鼎信DWG无线网关
- 性价比打过折的故宫紫禁城
- 阿里云ddns ipk包下载
- 【电子产品】ThinkPad S5 Intel R Dual Band Wireless-AC 3165 网卡驱动莫名
- 【LeetCode343】剪绳子(动态规划)
- Android USB 扫码枪获取扫描内容