java数据结构--链表

package algorithm;

import java.util.Scanner;

public class ListTry {
    private ListTry next = null;
    private int data;

    ListTry() {
        next = null;
        data = -1;
    }

    public int getData() {
        return data;
    }

    public void setData(int data) {
        this.data = data;
    }

    public void setNext(ListTry next) {
        this.next = next;
    }

    public ListTry getNext() {
        return this.next;
    }

    public void full() {
        Scanner sc = new Scanner(System.in);
        ListTry q = this;
        System.out.println("请进行输入:(停止请输入exit)");
        String h;
        while (!("exit".equals(h = sc.next()))) {
            q.setNext(new ListTry());
            q.getNext().setData(Integer.parseInt(h));
            q = q.getNext();
        }
        sc.close();
    }

    public void printAll() {
        ListTry q = new ListTry();
        q = this;
        while (q.getNext() != null) {
            System.out.println(q.getNext().getData());
            q = q.getNext();
        }
    }

    public static void delete(ListTry pre, ListTry del) {
//      ListTry q = new ListTry();
//      q = del.getNext();
//      pre.setNext(del.getNext());
//      del = q;
        pre.setNext(pre.getNext().getNext());
//      del = pre.getNext();
    }

    public static void main(String[] args) throws InterruptedException {
        ListTry list1 = new ListTry();
        list1.full();
        ListTry q = list1.getNext();
        ListTry p = list1;
        list1.printAll();
        System.out.println("---------------");
        while (q != null) {
            System.out.println("now " + q.getData());
            if (q.getData() == 250) {
                System.out.println("shanchu---");
                ListTry.delete(p, q);
                q = p.getNext();
            } else {
                q = q.getNext();
                p = p.getNext();
            }

        }
        list1.printAll();
    }
}

删除操作那里出了一点问题,已解决,问题在于java是值传递,不是引用
画个图表达一下

这是一个值传递示意图

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值