为什么我不能实例化一个内部类?(Java)



我想创建一个二叉搜索树,并按顺序遍历树。我有以下代码:

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 { ...

最新更新