java单链表怎么删除某个节点

44次阅读
没有评论

共计 954 个字符,预计需要花费 3 分钟才能阅读完成。

要删除单链表中的某个节点,可以按照以下步骤进行操作:

  1. 首先判断要删除的节点是否是头节点。如果是头节点,直接将头指针指向下一个节点即可。
  2. 如果要删除的节点不是头节点,需要先找到要删除节点的前一个节点。
  3. 将前一个节点的 next 指针指向要删除节点的下一个节点,跳过要删除的节点。
  4. 释放要删除的节点的内存空间,完成删除操作。

以下是一个示例代码:

public class ListNode {int val;
    ListNode next;
    ListNode(int x) {val = x;}
}

public class LinkedList {private ListNode head;

    public void deleteNode(int val) {ListNode current = head;
        ListNode previous = null;

        // 遍历链表找到要删除的节点和其前一个节点 
        while (current != null && current.val != val) {
            previous = current;
            current = current.next;
        }

        // 要删除的节点是头节点 
        if (current == head) {head = head.next;}
        // 要删除的节点不是头节点 
        else {previous.next = current.next;}

        // 释放要删除的节点的内存空间 
        current = null;
    }
}

使用示例:

public class Main {public static void main(String[] args) {LinkedList list = new LinkedList();

        // 添加节点 
        list.head = new ListNode(1);
        ListNode second = new ListNode(2);
        ListNode third = new ListNode(3);
        list.head.next = second;
        second.next = third;

        // 删除节点 
        list.deleteNode(2);

        // 打印链表 
        ListNode current = list.head;
        while (current != null) {System.out.print(current.val + " ");
            current = current.next;
        }
    }
}

输出结果为:1 3,表示成功删除了值为 2 的节点。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-01-29发表,共计954字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)