java实现单向链表

package hello1;
public class LinkList<T> {
    private LinkList<T> head;
    private LinkList<T> tail;
    T data;
    private LinkList<T> next;

    public LinkList() {
        head = tail = null;

    }

    public LinkList(T data) {
        this.data = data;
        this.next = null;
    }


    public void insert(T data) {
        LinkList<T> li = new LinkList<T>(data);
        if (head == null) {
            head = li;
        }
        else if(tail==null){

            tail=li;head.next=tail;
        }
        else{
            li.next=head.next;
            head.next=li;
        }

    }

    public void printLinkList() {
        LinkList x = this.head;
        if(head==null||tail==null)
            System.out.println("empty");
        while (x!= null) {
            System.out.print(x.data + " ");
            x = x.next;
        }
        System.out.println();
    }

    public void delete(T data) {
        LinkList curr=head,pre=null;
        boolean f=true;
        while(curr!=null) {
            if (curr.data.equals(data)) {
                f = false;
                System.out.println(data+"删除成功");
                if (curr == head) {
                    head = head.next;
                } else if (curr == tail) {
                    tail = pre;
                    pre.next = null;
                } else {
                    pre.next = curr.next;
                }
            }
            pre = curr;
            curr = curr.next;
        }
        if(f)
            System.out.println("不存在"+data);

    }


    public static void main(String[] args) {
        LinkList<Integer> mylist = new LinkList<Integer>();
        mylist.insert(5);
        mylist.insert(6);
        mylist.insert(7);
        mylist.insert(3);
        mylist.insert(9);
        mylist.insert(8);
        mylist.printLinkList();
        mylist.delete(1);
        mylist.printLinkList();
        mylist.delete(8);
        mylist.printLinkList();
        mylist.delete(6);
        mylist.printLinkList();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值