在使用 Java 构建链表时,经常会遇到最后一位节点为 'null' 的问题。这会导致遍历链表时出现错误,因为无法访问到最后一个节点的实际数据。

问题描述

代码中存在着链表的最后一位是 'null' 的问题,想要链表的最后一位是实际的数据。

预期值: 1, 2, 3, 4, 5

实际值: 1, 2, 3, 4, 5, 'null'

解决方案

您可以将当前节点 'curr' 的初始值设置为 'null',然后在循环开始之前添加一个 'if' 条件来判断 'curr' 是否为 'null'。如果 'curr' 为 'null',则将 'curr' 指向新创建的节点,否则将 'curr' 的下一个节点指向新创建的节点。这样就可以确保链表的最后一位是实际的数据。

修改后的代码:

public ListNodeE buildLinkedList(int[] arr){
    ListNodeE dummy = new ListNodeE(0);//虚拟头节点
    ListNodeE curr = null;
    for (int nums : arr) {
        if (curr == null) {
            curr = new ListNodeE(nums);
            dummy.next = curr;
        } else {
            curr.next = new ListNodeE(nums);
            curr = curr.next;
        }
    }
    return dummy.next;
}

注意:

我们还将 'dummy.next' 的赋值放在了 'if' 条件中。这是因为当 'curr' 为 'null' 时,我们需要将 'dummy.next' 指向新创建的节点,以便链表的头部正确连接。

通过以上修改,您就可以成功地避免链表最后一位出现 'null' 的问题,并获得预期结果。

Java 链表构建 - 如何避免最后一位为 null

原文地址: https://www.cveoy.top/t/topic/pYVi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录