首页 > 解决方案 > 为什么链接列表合并功能在 Java 中不起作用?

问题描述

问题出现在“while(m.next!=null)”的合并函数中。它抛出一个“NullPointerException”。

public class Linked {

    node ptr1;
    node ptr2;

    void merge()
    {
        node m=ptr1;

        while(m.next!=null)
            m=m.next;
        m.next=ptr2;
    }

    void printmerged()
    {
        node m=ptr1;

        while(m.next!=null)
            System.out.print(m.data+", ");
        System.out.println(m);
    }
}

标签: java

解决方案


我在您的代码中添加了注释,以向您解释发生了什么。

node ptr1; //ptr1 is null here
node ptr2;

void merge()
{
    node m=ptr1; //you are assigning null to m

    while(m.next!=null) //you are accessing the "next" property of a null object
        m=m.next;
    m.next=ptr2;
}

您必须实例化您的对象,否则它们将为空。


推荐阅读