我正在运行代码,但是显示空指针异常,但没有得到这里错过的内容。
该代码位于二元搜索树的插入节点上
代码为:
import java.io.*;
import java.util.*;
class BSTNode
{
int data;
BSTNode left;
BSTNode right;
BSTNode(int num)
{
data=num;
left=null;
right=null;
}
}
上面是制作节点实例的类。
class BST
{
public static final Scanner sc=new Scanner(System.in);
public static void main(String ...args)throws IOException
{
int num;
BSTNode head=null;
while(true)
{
int ch=sc.nextInt();
switch(ch){
case 1:
head=insert(head);
break;
case 2:
inorder(head);
break;
default:
System.exit(0);
}
}
}
if语句
中的以下函数中显示异常public static BSTNode insert(BSTNode head)throws NullPointerException
{
System.out.println("Enter data want to enter");
//int n=sc.nextInt();
//while(n--!=0)
//{
int num=sc.nextInt();
BSTNode node=new BSTNode(num);
if(head==null)
head=node;
else{
BSTNode p=head;
while(true){
if(num<p.data) /***/NullpointerException is showing here(line 59)***
{
if(p.left!=null)
{
p.left=node;
break;
}
else
p=p.left;
}
else{
if(p.right!=null)
{
p.right=node;
break;
}
else
p=p.right;
}
}
}
//}
return head;
}
输入如下:
1
Enter data want to enter
3
1
Enter data want to enter
4
3
Exception in thread "main" java.lang.NullPointerException
at BST.insert(BST.java:59)
at BST.main(BST.java:31)