JAVA基础--单链表的添加和删除||在火车车厢的头部、中间、尾部添加/删除节点

关于单链表的添加详情在上篇笔记中单链表的添加操作

本文章是添加和删除的合集,个人练习作业,如果有不对的地方欢迎指出!

接下来咱们来实现题目中的

删除第一个出现的某元素removeFrist(),

删除中间位置的某元素removeIndex(int data,int index)

删除第一次出现的元素x :removeValueOnce(int data)

删除所有的x元素:removeAllValue(int data)

 

基本步骤:找前驱节点、判断元素合法性、找特殊情况

注意:

1.无论是插入还是删除,第一个节点都需要额外判断,第一个元素不存在前驱节点

2.删除步骤中,应先接连node前一个元素与node后一个元素,再进行删除操作。

在多次删除时,应使用while循环进行多次判断。

后面附上代码以及运行截图。


import jdk.swing.interop.SwingInterOpUtils;

class Node {
    // 存储具体元素
    int data;
    // 存储下一个结点地址(钩子)
    Node next;

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

    public Node(int data, Node next) {
        this.data = data;
        this.next = next;
    }

}
public class SingleLinkedList {
    //单链表的CRUD
    private int size;
    private Node head;
    //单链表只能从前向后,不能从后向前。
    //1.在火车头部插入一个新节点 -> 找前驱节点
    public void addFrist(int data){
        //使用addfirst向火车中插入元素
        // 一个节点都没有 -> 新插入元素就是第一个
        if (size == 0){
            Node node = new Node(data);
            head = node;
            size ++;
        }else{
            //此时火车车厢中有节点
            Node node = new Node(data);
            node.next = head;
            head = node;
            size ++;
        }
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值