英文:
Why is the link list merge function not working in 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);
}
}
英文:
The problem arises in the merge function at 'while(m.next!=null)'. It throws a "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);
}
}
答案1
得分: 1
我在你的代码中添加了注释,以便向你解释正在发生的情况。
node ptr1; // 在这里 ptr1 是空的
node ptr2;
void merge()
{
node m=ptr1; // 你正在将 null 赋给 m
while(m.next!=null) // 你正在访问一个空对象的 "next" 属性
m=m.next;
m.next=ptr2;
}
你必须实例化你的对象,否则它们将会是 null。
英文:
I added comments to your code to explain to you what's going on.
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;
}
You have to instantiate your objects otherwise they are going to be null.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论