Java 单链表简单实现

Posted 菜の可怜

tags:

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

实现功能并不完全,只有添加,删除,和遍历功能,后续还会继续添加

定义节点属性

class Node{ //定义节点属性
    public int Data;
    public Node next = null;
    public Node(int Data){
        this.Data = Data;
    }
}

定义节点方法

class ListMe {
    Node head = null;//头结点为空
    
    void addNode(int data){ //添加节点
        Node newNode = new Node(data); //创建新节点
        if(head == null){   //如果头结点为空,就让节点作为头结点
            head = newNode;
            return;
        }
        Node temp = head;        
        while(temp.next!=null){ //让节点遍历都最后一个位置
            temp = temp.next;
        }
        temp.next = newNode;   //添加节点
    }
    boolean  delNode(int position){  //删除节点
        if(position>listLength()||position<1){  //如果删除的位置不在指定地方,就返回false
            return false;
        }
        if(position == 1){ //头结点更换
            head = head.next;
            return true;
        }
        int i = 1;
        Node preNode = head;         //前驱节点
        Node curNode = preNode.next; //后一位节点
        while(curNode != null){     //后一位不为空,就遍历查找到指定位置的节点
            if( i == position){  //查找到之后就让前一位直接连到后一位节点位置上
                preNode.next = curNode.next;
                return true;
            }
            preNode = curNode; //节点后推
            curNode = curNode.next; 
            i++;//位置
        }
        return false;
     }
    int listLength(){ //返回链表长度
        int length = 0;
        Node curNode = head;
        while(curNode != null){
            length++;
            curNode = curNode.next;
        }
        return length;
    }
    void print(){  //打印链表内容
        Node curNode = head;
        while(curNode != null){
            System.out.print(curNode.Data+" ");
            curNode = curNode.next;
        }
    }
}

主方法中测试数据

public class Main{
    public static void main(String[] args){
        ListMe a = new ListMe();
        a.addNode(2);
        a.addNode(1);
        a.addNode(5);
        a.addNode(4);
        a.addNode(3);
        a.print();
        System.out.println();
        System.out.println(a.listLength());
        if(a.delNode(1)){
            a.print();
       System.out.println(); System.out.println(a.listLength()); }
else{ System.out.println("异常"); } } }

 

以下是运行结果

2 1 5 4 3

5

1 5 4 3

4

 



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

Java 单链表简单实现

数据结构--单链表简单代码实现(总结)

(java实现)单链表

单链表java简易实现

Java实现单链表(步骤详解+源码)

java数据结构:单链表常见操作代码实现