共计 954 个字符,预计需要花费 3 分钟才能阅读完成。
要删除单链表中的某个节点,可以按照以下步骤进行操作:
- 首先判断要删除的节点是否是头节点。如果是头节点,直接将头指针指向下一个节点即可。
- 如果要删除的节点不是头节点,需要先找到要删除节点的前一个节点。
- 将前一个节点的 next 指针指向要删除节点的下一个节点,跳过要删除的节点。
- 释放要删除的节点的内存空间,完成删除操作。
以下是一个示例代码:
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 网 – 提供最优质的资源集合!
正文完