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

avatar
作者
猴君
阅读量:0

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

  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的节点。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!