Java程序:删除单链表中所有偶数节点
在本文中,我们将学习如何从单链表中删除所有偶数节点。Java程序演示了如何创建和管理单链表,包括添加节点、删除偶数值节点和打印链表。您将看到如何插入节点、删除偶数值节点以及显示剩余节点。
单链表由节点组成,每个节点有两个部分:一部分存储数据,另一部分保存下一个节点的地址。这种设置只允许单向遍历,因为每个节点都通过单个连接链接到下一个节点。

问题陈述
编写一个Java程序,从单链表中删除所有偶数节点。
输入
Original List:
1 2 3 4 5 6
输出
Original List:
1 2 3 4 5 6
List after deleting even nodes:
1 3 5
从单链表中删除所有偶数节点的步骤
以下是从单链表中删除所有偶数节点的步骤:
- 首先,我们将创建链表,我们将初始化一个空链表。
- 添加具有整数值(1, 2, 3, 4, 5, 6)的节点到列表的末尾。
- 删除偶数节点,我们将删除前导偶数,我们检查并从列表的开头删除偶数节点。
- 通过遍历剩余列表并删除具有偶数值的节点来删除内部偶数。
- 打印删除后列表中剩余节点的值。
Java程序:删除单链表中所有偶数节点
这是一个从单链表中删除所有偶数节点的Java程序:
public class LinkedList {
// Node class
static class Node {
int data;
Node next;
Node(int data) {
this.data = data;
this.next = null;
}
}
Node head;
// Function to insert a node at the end of the list
public void insert(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
} else {
Node temp = head;
while (temp.next != null) {
temp = temp.next;
}
temp.next = newNode;
}
}
// Function to delete all even nodes
public void deleteEvenNodes() {
if (head == null) return;
// Removing even nodes at the beginning
while (head != null && head.data % 2 == 0) {
head = head.next;
}
// Remove even nodes that are not at the head
Node current = head;
while (current != null && current.next != null) {
if (current.next.data % 2 == 0) {
current.next = current.next.next;
} else {
current = current.next;
}
}
}
// Function to print the linked list
public void printList() {
Node temp = head;
while (temp != null) {
System.out.print(temp.data + " ");
temp = temp.next;
}
System.out.println();
}
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insert(1);
list.insert(2);
list.insert(3);
list.insert(4);
list.insert(5);
list.insert(6);
System.out.println("Original List:");
list.printList();
list.deleteEvenNodes();
System.out.println("List after deleting even nodes:");
list.printList();
}
}
输出
Original List: 1 2 3 4 5 6 List after deleting even nodes: 1 3 5
代码解释
该LinkedList类定义了一个链表,其中包含插入节点、删除偶数值节点和打印列表的方法。Node类表示列表中的每个节点,包含整数数据和对下一个节点的引用。insert()方法将新节点添加到列表的末尾。deleteEvenNodes()方法首先删除开头的偶数节点,然后迭代列表以删除任何剩余的偶数节点。最后,printList()方法输出列表中节点的值。main方法通过创建列表、插入值、删除偶数和打印结果来演示这些操作。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP