链表的修改和删除

链表的修改和删除

修改思路

  1. 先找到该节点,通过遍历

  2. temp.name=newHeroNode.name;temp.nickname=newHeroNode.nickname

代码实现

//修改节点的信息,根据no编号来修改,但是不能修改no,否则就变成了添加
/*
 * 根据newHeroNode的no进行修改
 * */
public void update(HeroNode newHeroNode) {
    if (head.next == null) {
        System.out.println("链表为空");
        return;
    }
    HeroNode temp = head.next;
    while (true) {
        if (temp == null) {
            break;// 已经遍历完链表
        }
        if (temp.no == newHeroNode.no) {
            // 找到需要修改的节点
            temp.name = newHeroNode.name;
            temp.nickname = newHeroNode.nickname;
        }
        temp = temp.next;
    }
}
​
// 在main方法中对以上代码进行测试
// 测试修改代码
        HeroNode newHeroNode = new HeroNode(2, "小卢", "玉麒麟~~~");
        singleLinkedList.update(newHeroNode);
        System.out.println("修改后的链表情况");
        singleLinkedList.show();

删除节点

思路

  1. 我们先找到要删除节点的前一个节点temp

  2. temp.next=temp.next.next

  3. 被删除的节点,将不会有其他引用指向,会被垃圾回收机制回收

代码实现

// 删除
public void remove(int no) {
    HeroNode temp = head;
    while (true) {
        if (temp.next == null) {
            break;
        }
        if (temp.next.no == no) {// 找到了要删除的节点的前一个节点
            temp.next = temp.next.next;
            break;
        }
        temp = temp.next;
    }
}
​
// 对以上代码进行测试
 // 删除
        singleLinkedList.remove(1);
        singleLinkedList.remove(4);
        singleLinkedList.remove(2);
        System.out.println("删除后的链表情况");
        singleLinkedList.show();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重开之Java程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值