分门别类刷算法,坚持,进步!

刷题路线参考: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通关:听说链表是门槛,这就抬脚跨门而入相关推荐

  1. LeetCode 92反转链表Ⅱ93复制ip地址94二叉树的中序遍历

    微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...

  2. LeetCode篇之链表:1290(二进制链表转整数)

    LeetCode篇之链表:1290-->二进制链表转整数 1290. 二进制链表转整数 题目: 解题思路: 源码: 改进: 踩坑点: 1290. 二进制链表转整数 题目: 解题思路: 1.先遍历 ...

  3. LeetCode Python实现 链表简单部分

    LeetCode Python实现 链表简单部分 我以前完全没有写过关于链表的东西,node.val=node.next.val#当前值被后一个值覆盖node.next=node.next.next# ...

  4. [链表|多解法] leetcode 19 删除链表的倒数第N个节点

    [链表|多解法] leetcode 19 删除链表的倒数第N个节点 1.题目 题目链接 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2-&g ...

  5. LeetCode:旋转链表【61】

    LeetCode:旋转链表[61] 题目描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5- ...

  6. 链表排序---迭代版本归并算法 + [leetcode]148. 排序链表

    前言: 对于链表来说,排序首选应该是归并算法 维基百科上有归并算法的迭代版本和递归版本 基于数组实现的. https://zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B ...

  7. 学长冷月带你怒刷LeetCode之反转链表

    本文目录 前言 题目描述 冷月题解 总结一下 前言 链表的操作是数据结构中最基础的算法之一,反转列表也是一道经典的笔试题.很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间 ...

  8. LeetCode 142. 环形链表 II

    LeetCode 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如 ...

  9. 【Leetcode -61.旋转链表 -82.删除排序链表中的重复元素Ⅱ】

    Leetcode Leetcode -61.旋转链表 Leetcode -82.删除排序链表中的重复元素Ⅱ Leetcode -61.旋转链表 题目:给你一个链表的头节点 head ,旋转链表,将链表 ...

  10. 【LeetCode通关全记录】658. 找到 K 个最接近的元素

    [LeetCode通关全记录]658. 找到 K 个最接近的元素 题目地址

最新文章

  1. CentOS7在防火墙开启与关闭以及端口操作
  2. 使用Dagger 2在GWT中进行依赖注入
  3. mysql 删除重复数据_日常答疑|MySQL删除重复数据踩过得坑
  4. jmx监控java进程_用VisualVM远程监控Java进程
  5. JavaScript学习之—prototype
  6. SublimeText集成印象笔记插件简略步骤
  7. sql注入与sqlmap工具使用
  8. 右脑记忆法的个人理解
  9. 亚马逊中国发布2015图书排行榜
  10. 【读书笔记】《M型社会》大前研一
  11. 【转载】Ansys中的阻尼
  12. 多个域名指向一个ip
  13. mysql 空格显示问号_空格变成问号
  14. Linux 之父亮相,这个开源社区要“搞大事”
  15. 软电话对接鼎信DWG无线网关
  16. 性价比打过折的故宫紫禁城
  17. 阿里云ddns ipk包下载
  18. 【电子产品】ThinkPad S5 Intel R Dual Band Wireless-AC 3165 网卡驱动莫名
  19. 【LeetCode343】剪绳子(动态规划)
  20. Android USB 扫码枪获取扫描内容

热门文章

  1. 【创业者活动】运营弱关系型社区以及创业者交流聚会[2012年12月]
  2. Recording︱有价值的各类AI、机器学习比赛心得、经验抄录
  3. FASTA序列格式说明
  4. ARM Cortex 详解
  5. python中列表下标,python打印列表中指定元素的所有下标
  6. 如何在电脑端免费下载歌曲?
  7. P1162 填涂颜色(BFS)
  8. 鼠标移动让图片倾斜45度
  9. kmplayer android官方下载,KMPlayer下载
  10. PCA(主成分分析)数学原理推导证明