在Java中为单链表创建新节点

2024-02-07

我仍在学习 Java,目前正在解决《破解编码面试》中的问题,第 2 章(LinkedList)中的问题之一要求从未排序的链表中删除重复项。我在 GitHub 上找到了一堆答案/解决方案,但我想创建自己的 Node,并编写自己的版本。

到目前为止我所实现的是,我创建了 Node 类并编写了可以从未排序的 LinkedList 中删除重复项的函数/方法,但是当我尝试测试它时,我尝试在主函数中创建 LinkedList,但我仍然有不知道如何弄清楚。有人可以帮助/指导我如何创建单链表吗? 基本上,我创建四个节点(第四个、第三个、第二个、头),并使用 Node 类将它们全部连接起来。

提前致谢,

public class Node {
    int data;
    Node next;

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

    public String toString(){
        return data + "";
    }
}


public class problem1 {

    public void Remove_duplicates(Node head){
        if(head == null){
            return;
        }

        Node current = head;
        while(current != null){
            Node runner = current;
            while(runner.next != null){
                if(runner.next.data == current.data){
                    runner.next = runner.next.next;
                }
                else {
                    runner = runner.next;
                }
            }
            current = current.next;
        }
    }

    public static void main(String[] args) {

        Node fourth = new Node(5,null);
        Node third = new Node(3,fourth);
        Node second = new Node(4,third);
        Node head = new Node(3,second);
        for(Node a: head){
            // ERROR: saying can only iterate over an array (or) java.lang.Iterable
            System.out.println(a.toString());
            a = a.next;
        }
    }
}

尝试另一种循环,例如while

Node head = new Node(3, second);
Node node = head;
while (node.next != null) {
    System.out.println(node.toString());
    node = node.next;
}

就像它所解释的那样,它不知道如何迭代节点。 另一种使用方法foreach将创建一个自己的类来实现该接口Iterable并且包含你的LinkedList logic.

对于第二种方法,我建议您阅读以下内容:如何实现 Iterable 接口? https://stackoverflow.com/questions/601658/how-can-i-implement-the-iterable-interface

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Java中为单链表创建新节点 的相关文章

随机推荐

  • 如何将 NestJS 中的服务注入到 typeorm 存储库中?

    我有一个UserRepository它处理在数据库前面创建 验证用户 我想对用户的密码执行哈希和验证 因此我为此创建了一个单独的服务 尝试遵循单一责任原则 其声明如下 Injectable export default class Hash
  • jeditable 意外触发嵌套项目上的 Draggable

    我使用jquery ui的draggable进行拖放 并且可编辑的 http www appelsiini net projects jeditable用于内联编辑 当我拖放一个也可编辑的元素时 在它被放置后 jeditable 立即启动并
  • 防止/限制方法继承

    我有一个应用程序 其中许多对象都扩展一个抽象类 该类定义了类似的方法create edit retrieve and delete 由于每个子类对这些函数都使用相同的逻辑 因此抽象类定义了默认行为 并且在需要增强的少数情况下 子类可以覆盖或
  • Bootstrap 导航栏垂直显示而不是水平显示

    我正在使用 CodePen 开发一个项目 并使用 bootstrap 来制作导航栏 但由于某种原因 它是垂直显示而不是水平显示 即使我从W3学校 https www w3schools com bootstrap bootstrap nav
  • maven中的“pom”包装是什么?

    我得到了一个 Maven 项目来编译并部署在 tomcat 服务器上 我今天之前从未使用过 Maven 但我已经在谷歌上搜索了很多 貌似是顶级水平pom xml该项目中的文件的打包类型设置为pom 之后我应该做什么mvn install部署
  • Java查询数据库后返回一个数组

    我必须查询 MSSQL 数据库 并且希望查询结果作为 Array 或 ArrayList 返回 我现在有这个代码 但它给出了一个错误 我有到数据库的连接 所以这不是问题 public ArrayList
  • 在 Linux 上嗅探数据包时过滤网络堆栈中的数据包?

    我有一个问题要问底层网络 Linux 专家 我必须为我大学的安全项目构建两个工具 第一个工具是 ARP 中毒攻击者 它会毒害远程主机的 ARP 缓存 以便检索他发送到另一台主机的数据 我使用原始套接字用 C 语言编写了这个工具 它工作得很好
  • 选择数据表中的所有 jsf primefaces

    我正在尝试创建一个全选按钮或复选框 单击该按钮或复选框时 所有 selectbooleanCheck 框都会被选中 有没有直接简单的方法 我开始创建 selectcheckbox 当更改时它将 selectAll 谢谢
  • 如何在输出文件中抑制 stargazer() 信息

    我正在使用stargazer将 R 数据帧输出为乳胶代码的包 library stargazer stargazer mtcars 这是输出 Table created by StarGazer v 3 0 1 by Marek Hlava
  • 如何重新初始化 jQuery DataTables 上的数据排序?

    我在我的项目中使用 jQuery Datatables 并且通过使用属性在列上提供了 自定义值 排序data sort如此处所述 https datatables net examples advanced init html5 data
  • Android Studio“提取方法”快捷键 Ctrl+Alt+M 不起作用

    The android studio shortcut for extract function is not working for me If I press Ctrl Alt M nothing is happening and wh
  • AWS C++ S3 SDK PutObjectRequest 无法连接到端点

    在使用 AWS C SDK 时 我遇到了一个问题 即尝试执行 PutObjectRequest 时会抱怨上传超过 400KB 时 无法连接到端点 Aws Client ClientConfiguration clientConfig cli
  • 在knitr Latex文档中缩放图形

    我正在尝试将图表包含到带有knitr的乳胶文档中 由于 knitr 包含 webshot 包 因此效果很好 但是 如果我想调整乳胶输出的图形大小 图形环境会变大 但绘图图表不会被调用到手动设置的图形宽度和高度 指定 webshot 选项 例
  • 验证应该在 Form 对象中还是模型中完成?

    这个问题主要针对PHP中的Zend 尽管它当然也适用于其他语言和框架 所以我欢迎大家的意见 我最近才开始使用 Zend 框架 虽然它并不完美 但我用它玩得很开心 然而 让我发疯的一件事是 我看到的大多数使用 Zend 的人的例子都是特殊形式
  • GetSystemMetrics() 对 .NET 4.5 和 .NET 4.0 返回不同的结果

    在 NET 4 0 gt NET 4 5 应用程序迁移过程中 我发现了一种极其奇怪的行为 我已经能够将这个问题追溯到这个简短的代码片段 class Program System Runtime InteropServices DllImpo
  • 如何在经典asp中执行多线程/后台进程

    我需要通过经典 asp 应用程序上的后台作业发送电子邮件 这样用户就不必等待缓慢的网络服务器完成发送电子邮件 我知道我可以使用 Ajax 生成两个单独的请求 但我不想需要 Javascript 另外 我怀疑有更好的方法来实现这一目标 有想法
  • Cordova 构建错误:在严格模式下使用 const

    我在 VS 2015 中创建了一个新的 Cordova 项目 当我尝试运行代码时 我在构建输出中收到以下错误 1 gt Build started Project TestProject Configuration Debug Androi
  • Docker 返回退出代码 3221225781 安装 vc_redist.x64.exe

    我在 docker RUN 中看到了很多有关退出代码 3221225781 的问题 但我仍然找不到答案 考虑这个 dockerfile FROM mcr microsoft com dotnet core runtime 3 1 WORKD
  • 将自然语言描述解析为结构化数据的策略

    我有一系列要求 并且正在寻找最好的基于Java使用的策略 算法 软件 基本上 我想获取一组由真人用自然英语输入的食谱成分 并将元数据解析为结构化格式 请参阅下面的要求以了解我想要做什么 我环顾过这里和其他地方 但没有找到任何关于下一步方向的
  • 在Java中为单链表创建新节点

    我仍在学习 Java 目前正在解决 破解编码面试 中的问题 第 2 章 LinkedList 中的问题之一要求从未排序的链表中删除重复项 我在 GitHub 上找到了一堆答案 解决方案 但我想创建自己的 Node 并编写自己的版本 到目前为