【发布时间】:2015-08-28 10:48:07
【问题描述】:
我是 Java 新手,我想创建一个带有插入和前序遍历的二叉搜索树类,但是当我完成插入时,根对象仍然为 null,编译器在前序遍历期间抛出 NullPointerException。
我的节点类:
class Node {
int info;
Node left;
Node right;
public Node() {
info = 0;
left = null;
right = null;
}
Node(int x) {
info = x;
left = null;
right = null;
}
}
我的二叉搜索树类:
public class BinarySearchTree {
private Node root;
public BinarySearchTree() {
root = null;
}
private void insertPrivate(Node node, int x) {
if(node == null) {
node = new Node(x);
}
else {
if(x < node.info) {
insertPrivate(node.left, x);
}
else if (x > node.info) {
insertPrivate(node.right, x);
}
}
}
public void insert(int x) {
insertPrivate(root, x);
}
private void preorderPrivate(Node node) {
if(node != null) {
System.out.println(node.info);
preorderPrivate(node.left);
preorderPrivate(node.right);
}
}
public void preorder() {
preorderPrivate(root);
}
public static void main(String[] args) {
BinarySearchTree t = new BinarySearchTree();
t.insert(12);
t.insert(13);
t.preorder();
}
}
【问题讨论】:
-
我在进行前序遍历时也犯了一些错误。我没有检查节点是否为空。