0
点赞
收藏
分享

微信扫一扫

java-玩转链表-1

seuleyang 2022-01-09 阅读 44

之前的文章中介绍了线性表中的顺序表

JAVA初阶必学-线性表-顺序表

这几节内容中我们来认识线性表中的链表,并通过LeetCode中的例题来彻底掌握链表。

废话不说,进入正题

链表

目录

定义:

基础操作

遍历打印

1,头插

2, 头删

3,尾插

4,尾删

5,跳过前n个结点去遍历链表 


定义:

一条链表是由多个结点构成的,一个结点中数据域的元素值和一个指向下个对象的引用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题目等 

举报

相关推荐

0 条评论