一、前言:什么是链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
不要怕,让我一一来给你解释。链表实际上就是下面这个样子的
它是一块一块的,怎么连接的呢?他的每一块是这样定义的
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
每一块里面还包含着下一块的地址(next),这样我们才可以找的到下一块。就这样一直链下去,直到尾节点,那么怎么确定是尾节点?那肯定是里面的next=null,后面就没有节点啦。
链表就是这么回事。通过next连接后面的节点。我们想要那个元素,也只能从头节点开始慢慢找。
二、一切理论都源于实践,多刷题领悟其中精髓才能真正掌握
三、链表相关的面试高频题目录
1.相交链表 (力扣 160) 博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112850774
2.删除排序链表中的重复元素 (力扣 83) 博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112852941
3.两两交换链表中的节点(力扣 24) 博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112853049
4.两数相加II(力扣 445) 博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112853071
5.回文链表(力扣 234) 博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112853106
6.分隔链表(力扣 725) 博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112853146
7.反转链表(剑指offer 24) 博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112853175
四、各种类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/112556249
五、如有疑问可加QQ群讨论:725936761 博主免费答疑
欢迎大家一起讨论进步。后续遇到相似的题会继续更新!
为了鼓励大家坚持,当天打卡人数超过一半,群主发一个红包(群主是学生),激励大家坚持下去!希望以后找工作的时候大家能互捞一下~~~
群里已有字节、滴滴大佬,可帮忙内推!也欢迎其他大厂的工作人士进群!帮忙内推~
B站视频讲解如何三个月学习JAVA拿到实习Offer:
https://www.bilibili.com/video/BV1dV411t71K