Java实现单链表(头插法和尾插法)

Posted 我永远信仰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实现单链表(头插法和尾插法)相关的知识,希望对你有一定的参考价值。

手写单链表
定义一个ListNode类

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;
    }
}

用用头插法和尾插法完成链表的初始化

头插法实现相对比较简单
尾插法实现因为head不能变,所以需要一个辅助节点tem;

画图会比较容易理解。
在这里插入图片描述
在这里插入图片描述

import leetcode.dataType.ListNode;

public class LeetCode_206 {
    public static void main(String[] args) {
        ListNode head;
        ListNode tem;//辅助节点
        tem=head=null;
        int n = 5;
        //初始化链表
        while (n >= 0) {
            ListNode node = new ListNode(n);//new并初始化一个节点
            
            //头插法插入该节点
            /*node.next = head;
            head = node;*/

            //尾插法
            if (head == null) { //如果是第一次插入
                head = tem = node;
            } else {
                tem.next=node;
                tem=node;
            }
            n--;
        }

        while (head != null) {
            System.out.println(head.val);
            head = head.next;
        }
    }
}

以上是关于Java实现单链表(头插法和尾插法)的主要内容,如果未能解决你的问题,请参考以下文章

单链表建立——头插法和尾插法

C实现头插法和尾插法来构建非循环双链表(不带头结点)

C实现头插法和尾插法来构建链表

链表的头插法和尾插法

第二节1:Java集合框架之链表及其实现

头插法和尾插法分别建立链表(复制即可应用)