Java单链表简单实现

Java中 单链表简单实现,插入删除等功能

//节点结构
class Link {
    int data;
    Link next;

    public Link(int data) {
        this.data = data;
    }

//打印节点数据
    public void show() {
        System.out.print(data + " ");
    }
}

//单链表
public class LinkList {
    private Link head;

//判空
    public boolean isEmpyt() {
        return (head == null);
    }

//前插
    public void insertFirst(int data) {
        Link newLink = new Link(data);
        newLink.next = head;
        head = newLink;
    }

//前删
    public Link deleteFirst() {
        Link tmp = head;
        head = head.next;
        return tmp;
    }

//查找
    public Link find(int key) {
        Link tmp = head;
        while (tmp != null) {
            if (tmp.data == key)
                return tmp;
            tmp = tmp.next;
        }
        return null;
    }

//查找删除
    public Link delete(int key) {
        Link curr = head;
        Link pre = head;
        while (curr.data != key) {
            if (curr.next == null)
                return null;
            else {
                pre = curr;
                curr = curr.next;
            }
        }
        if (curr == head)
            head = head.next;
        else pre.next = curr.next;
        return curr;
    }

//打印链表
    public void show() {
        Link tmp = head;
        System.out.println();
        while (tmp != null) {
            tmp.show();
            tmp = tmp.next;
        }
        System.out.println();
    }

    public static void main(String[] args) {
        LinkList ll = new LinkList();
        ll.insertFirst(1);
        ll.insertFirst(2);
        ll.insertFirst(3);
        ll.insertFirst(4);
        ll.show();
        ll.find(1).show();
        ll.deleteFirst().show();
        ll.delete(1).show();
        ll.show();
        System.out.println(ll.isEmpyt());

    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值