我想创建一个二叉搜索树,并按顺序遍历树。我有以下代码:
public class BST {
static Node root;
public class Node{
int data;
Node left;
Node right;
Node(int data){
this.data = data;
left = null;
right = null;
}
Node(int data, Node left, Node right){
this.data = data;
this.left = left;
this.right = right;
}
}
public void inOrderTraversal(Node root){
if(root == null)
return;
inOrderTraversal(root.left);
System.out.println(root.data);
inOrderTraversal(root.right);
}
public static void main(String[] args) {
Node n1 = new Node(1);
}
}
然而,我不能用这个代码创建节点n1: Node n1 = new Node(1);
,我有消息说"没有InOrder类型的封闭实例是可访问的。必须用InOrder类型的封闭实例限定分配(例如,x.new A(),其中x是BST的实例)。有人能解释一下我的错误在哪里,以及我如何创建我的节点,分别是我的BST?
让Node成为一个静态类:
public static class Node { ...