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)的节点到列表的末尾。
  • 删除偶数节点,我们将删除前导偶数,我们检查并从列表的开头删除偶数节点。
  • 通过遍历剩余列表并删除具有偶数值的节点来删除内部偶数。
  • 打印删除后列表中剩余节点的值。

Learn Java in-depth with real-world projects through our Java certification course. Enroll and become a certified expert to boost your career.

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

更新于:2024年9月18日

浏览量:108

开启你的职业生涯

完成课程获得认证

开始学习
广告