Java 单链表的实现

啥也不多少,原理都一样,只是实现的方式不一样而已,原理介绍请自行百度百科百科百科-单链表

分析: 

数据的内容我们这边将存储整型 定义一个int 型的data 

对于Java 下一个节点的引用类型就是该节点自己,即可将类定义如下:

public class  Node{
    Node next = null;
    int data
}
public class  MyList{
    Node head = null;


    public class Node {
        Node next = null
        int data ;
    }


    // 增加节点  从尾部开始插入 
    public void addNode(int data){
        // 首先判断该链表是否存在元素    
        Node newNode = new Node();
        if(head == null )// 没有元素    
        {
               node.head = newNode;
        }    
        else{
        // 链表中存在节点,遍历找到最后的节点(尾部插入)
                Node tmp = head;//不修改头节点地址    
                while(tmp.next != null )
                        tmp = tmp.next
        }
        //找到尾部节点next为null ,将该节点地址赋值在最后一个节点next位置
        tmp.next = newNode ;
    }

    //删除节点 传入索引值 
    public boolean deleteNode(int index){
        // 首先判断待删除的节点是否存在
        if(index > length || index < 0)
            return -1;
     
        if (index == 1) {
            head = head.next;
            return true;
        }
        int i = 1;
        Node preNode = head;
        Node curNode = preNode.next;
        while (curNode != null) {
            if (i == index) {
                preNode.next = curNode.next;
                return true;
            }
            preNode = curNode;
            curNode = curNode.next;
            i++;
        }
        return false;        
    }

    public int length(){
        int i = 0;
        Node tmp = head;
        if(head == null) return 0;
        while(tmp.next != null)
        {       
            tmp = tmp.next;
            i++;    
        }
        return i;
    }    
    





}

猜你喜欢

转载自blog.csdn.net/weixin_38638777/article/details/104985391