首页主机资讯listnode java如何实现节点删除

listnode java如何实现节点删除

时间2025-09-26 14:27:04发布访客分类主机资讯浏览561
导读:在Java中,我们可以使用链表数据结构来实现 ListNode。要实现节点删除,我们需要遵循以下步骤: 定义一个 ListNode 类,包含一个整数值和一个指向下一个节点的引用。 创建一个链表类,包含一个头节点引用,并提供添加、删除和查找...

在Java中,我们可以使用链表数据结构来实现 ListNode。要实现节点删除,我们需要遵循以下步骤:

  1. 定义一个 ListNode 类,包含一个整数值和一个指向下一个节点的引用。
  2. 创建一个链表类,包含一个头节点引用,并提供添加、删除和查找节点的方法。
  3. 实现删除节点的方法,根据给定的值找到要删除的节点,并将其从链表中移除。

以下是一个简单的实现:

// 定义 ListNode 类
class ListNode {
    
    int val;
    
    ListNode next;


    ListNode(int val) {
    
        this.val = val;
    
        this.next = null;

    }

}


// 定义链表类
class LinkedList {
    
    ListNode head;


    // 添加节点到链表头部
    public void add(int val) {
    
        ListNode newNode = new ListNode(val);
    
        newNode.next = head;
    
        head = newNode;

    }


    // 删除指定值的节点
    public void delete(int val) {

        if (head == null) {
    
            return;

        }


        // 如果头节点就是要删除的节点
        if (head.val == val) {
    
            head = head.next;
    
            return;

        }
    

        ListNode current = head;

        while (current.next != null) {

            if (current.next.val == val) {
    
                current.next = current.next.next;
    
                return;

            }
    
            current = current.next;

        }

    }


    // 查找指定值的节点
    public ListNode find(int val) {
    
        ListNode current = head;

        while (current != null) {

            if (current.val == val) {
    
                return current;

            }
    
            current = current.next;

        }
    
        return null;

    }

}

使用示例:

public class Main {

    public static void main(String[] args) {
    
        LinkedList list = new LinkedList();
    
        list.add(1);
    
        list.add(2);
    
        list.add(3);
    
        list.add(4);
    

        System.out.println("Original list:");
    
        printList(list);
    

        list.delete(2);
    
        System.out.println("List after deleting 2:");
    
        printList(list);

    }


    // 打印链表
    public static void printList(LinkedList list) {
    
        ListNode current = list.head;

        while (current != null) {
    
            System.out.print(current.val + " ->
     ");
    
            current = current.next;

        }
    
        System.out.println("null");

    }

}
    

输出:

Original list:
1 ->
     2 ->
     3 ->
     4 ->
     null
List after deleting 2:
1 ->
     3 ->
     4 ->
     null

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: listnode java如何实现节点删除
本文地址: https://pptw.com/jishu/708633.html
listnode java怎样避免内存泄漏 listnode java怎样处理异常

游客 回复需填写必要信息