之前的文章中介绍了线性表中的顺序表
JAVA初阶必学-线性表-顺序表
这几节内容中我们来认识线性表中的链表,并通过LeetCode中的例题来彻底掌握链表。
废话不说,进入正题
链表
目录
定义:
一条链表是由多个结点构成的,一个结点中数据域的元素值和一个指向下个对象的引用next。
定义中讲到了链表由一系列结点组成。
所以我们学习链表可以先从结点开始。
定义一个结点类
public class ListNode{
public int val;//值
public ListNode next;//存储下个节点的位置
//定义构造方法
public ListNode(){};//无参的
public LIstNode(int val){
this.val=val;}//包含一个参数
public ListNode(int val,ListNode next){
this.val=val;
this.next=next;
}//包含两个参数
}
这样我们就定义好了一个结点类
public class LearnListNode {
public static void main(String[] args) {
//通过头结点表示链表
{//1,表示一个空的链表
ListNode head = null;
}
{//2,表示只有一个结点对象【100】的链表
ListNode head = new ListNode();
head.val = 100;
head.next = null;
}
//3,包含四个结点的链表[100,200,300,400 ]
ListNode n1 = new ListNode(100);
ListNode n2 = new ListNode(200);
ListNode n3 = new ListNode(300);
ListNode n4 = new ListNode(400);
n1.next = n2;
n2.next = n3;
n3.next = n4;
n4.next = null;
ListNode head=n1;
//链表中特殊的结点即为头尾结点,头结点没有前驱结点,尾结点没有后续结点,故n4作为这条链表中的最后一个结点,它的next =null,即不指向任何结点。
以上是分别定义了空链表,有一个节点的链表,以及有四个结点的链表,要注意的是,链表是通过头结点去表示的,所以要指定好链表的头结点,以这一个结点来代表着一条链表。
定义好了结点类,也在LearnListNode中连接好了一条有四个结点的链表,并用head头结点去表示了这一条链表,接下来我们就可以在链表中进行一些基本的操作。
基础操作
遍历打印
while(head !=null){
System.out.println(head.val);
head=head.next;}
1,头插
2, 头删
3,尾插
4,尾删
5,跳过前n个结点去遍历链表
本节中介绍了链表的定义以及结点类,链表的一些基本操作,如果对你有帮助的话请三连支持,后边会持续更新关于链表的更多知识,如链表OJ题目等