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





}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值