首页 > Java > java教程 > Java程序从单链接列表中删除所有节点

Java程序从单链接列表中删除所有节点

Patricia Arquette
发布: 2025-02-07 11:36:16
原创
747 人浏览过

这个Java程序有效地从单个链接列表中删除了所有偶数节点。让我们完善说明和呈现,以确保

>本文演示了如何从Java中的单个链接列表中删除所有偶数的节点。我们将介绍创建列表,添加节点,删除均值的节点并显示最终列表。>。

单独链接的列表是一个线性数据结构,每个节点都指向序列中的下一个节点。 每个节点都包含数据(在这种情况下为整数)和一个指向下一个节点的指针。

Java program to delete all even nodes from a singly linked list

问题:

>从单链接列表中删除所有偶数节点。> >输入示例:

>

>输出示例:
<code>Original List: 1 2 3 4 5 6</code>
登录后复制

算法:
<code>Original List: 1 2 3 4 5 6
List after deleting even nodes: 1 3 5</code>
登录后复制

初始化:
    >创建一个空的单链接列表。>
  1. >>节点插入:添加带有整数值的节点(例如1,2,3,4,5,6)到列表中。>
  2. 甚至节点删除:
  3. >
  4. 删除前导evens:从列表的头部迭代,一开始就删除任何偶数的节点,直到遇到一个奇数节点为止。>
      删除内部evens:遍历其余列表。如果节点的
    • 节点具有均匀值,请通过将当前节点直接链接到偶数值节点后的节点来绕过它。
    • >输出:在列表中打印剩余的节点。next
  5. > java代码:
  6. 输出:

这个改进的版本包括一个更简洁的说明,更清晰的代码注释,并处理所有节点甚至所有节点的边缘情况(导致空列表)。 在处理内部节点之前,添加检查(

),如果所有领导节点均为
public class LinkedList {
    static class Node {
        int data;
        Node next;

        Node(int data) {
            this.data = data;
            this.next = null;
        }
    }

    Node head;

    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;
        }
    }

    public void deleteEvenNodes() {
        //Remove leading even nodes
        while (head != null && head.data % 2 == 0) {
            head = head.next;
        }

        //Remove internal even nodes
        if (head != null) {  //Check if list is not empty after removing leading evens
            Node current = head;
            while (current != null && current.next != null) {
                if (current.next.data % 2 == 0) {
                    current.next = current.next.next;
                } else {
                    current = current.next;
                }
            }
        }
    }

    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();
    }
}
登录后复制

以上是Java程序从单链接列表中删除所有节点的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
java可以做为web的后端吗?
来自于 1970-01-01 08:00:00
0
0
0
安装JAVA
来自于 1970-01-01 08:00:00
0
0
0
无法安装java
来自于 1970-01-01 08:00:00
0
0
0
java - php调取webservice的map类型,如果封装?
来自于 1970-01-01 08:00:00
0
0
0
这个是Java语言的吗
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板