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方法通过创建列表、插入值、删除偶数和打印结果来演示这些操作。
广告