qq_25648695 2016-05-22 13:06 采纳率: 33.3%
浏览 1399
已采纳

java创建递归二叉树,输出根数据时出现空指针异常

代码如下:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.LinkedList;
import java.util.Scanner;
import java.util.*;
class BiNode{
public String data;
public BiNode lchild;
public BiNode rchild;
public void BiNode(){
}
public void BiNode(String Data){
this.data=Data;
}
}
class BiTree{
public BiNode root;
public void BiTree(){root=null;}
public BiNode Grow(BiNode node,Scanner scn) {
if(scn.hasNext()){
String temp=scn.next();
if(temp.equals("&")){
scn.close();
return null;
}
else if(temp.equals("#")){
return null;
}
else{
node = new BiNode();
node.data=temp;
System.out.println(node.data);
//System.out.println(this.root.data);
node.lchild=Grow(node.lchild,scn);
node.rchild=Grow(node.rchild,scn);
return node;
}
}
else return null;
}
public void PreOrder(BiNode bt){
if(bt==null) return;
else{
System.out.println(bt.data);
PreOrder(bt.lchild);
PreOrder(bt.rchild);
}
}
public void InOrder(BiNode bt){
if(bt==null) return;
else{
PreOrder(bt.lchild);
System.out.println(bt.data);
PreOrder(bt.rchild);
}
}
public void PostOrder(BiNode bt){
if(bt==null) return;
else{
PreOrder(bt.lchild);
PreOrder(bt.rchild);
System.out.println(bt.data);
}
}
}
public class TestBiTree{
public static void main(String[] args) {
int i=0;
System.out.println("ENTER NOW$$");
Scanner scn=null;
try{
scn= new Scanner(new File("input.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
};
BiTree ATree=new BiTree();
ATree.Grow(ATree.root,scn);
System.out.println("IT IS IN NOW$$");
System.out.println(ATree.root.data);
//ATree.PreOrder(ATree.root);
}
}
倒数第三行出错,显示空指针异常,求解答~~

  • 写回答

3条回答 默认 最新

  • threenewbee 2016-05-22 21:38
    关注

    ATree.Grow(ATree.root,scn);
    ->
    ATree.root = ATree.Grow(ATree.root,scn);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?