空指针异常没有任何线索

时间:2014-10-15 21:06:02

标签: java nullpointerexception

我正在编写二进制搜索树代码。在我的Bst类中,我有一个完美的AddNodes函数和一个使用递归的InOrderTraversal函数。但是这个函数给了我一个空指针异常,我不知道为什么。帮助将不胜感激:) 在此先感谢:)

编辑:" System.out.print("" + current.data)发生空指针异常;"线

public void InOrderTraversal(Node temp)
{
    if(temp != null)
    {
        InOrderTraversal(temp.LeftChild);
        System.out.print(" " + current.data);
        InOrderTraversal(temp.RightChild);
    }
}

主要是:

public static void main(String[] args) 
{
    Bst tree = new Bst();
    tree.AddNode(4);
    tree.AddNode(7);
    tree.AddNode(3);
    tree.AddNode(5);
    tree.InOrderTraversal(tree.root);
}

3 个答案:

答案 0 :(得分:1)

  

System.out.print(" " + current.data);行发生空指针异常

以下行的唯一方法

System.out.print(" " + current.data);
如果NullPointerException等于current

可能会抛出null

Maby您打算将参数命名为current

public void InOrderTraversal(Node current)
{
    if(current != null)
    {
        InOrderTraversal(current.LeftChild);
        System.out.print(" " + current.data);
        InOrderTraversal(current.RightChild);
    }
}

答案 1 :(得分:0)

您正在遍历树,但未将当前选定的节点分配给任何内容。 current为空,因为它永远不会被分配。

答案 2 :(得分:0)

应该是:

System.out.print(" " + temp.data);

您不指定无处当前节点。