Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的按顺序排序的ArrayList不能递归地构建LinkedBinaryTree?_Java_Arraylist_Data Structures_Binary Tree - Fatal编程技术网

Java 为什么我的按顺序排序的ArrayList不能递归地构建LinkedBinaryTree?

Java 为什么我的按顺序排序的ArrayList不能递归地构建LinkedBinaryTree?,java,arraylist,data-structures,binary-tree,Java,Arraylist,Data Structures,Binary Tree,我制作了一个ArrayList,其中填充了来自非平衡二叉树的值。ArrayList中的对象是按顺序遍历排序的 当我在LinkedBinaryTree类中构建二叉树时,我从编译器中得到一个找不到符号的错误。我很难堪,以下是我尝试过的 1我成功地将非arrayList中的值放入二叉树中,只是为了看看我是否正确理解了一般框架,树由节点组成,并使用打印行函数打印根,然后打印左侧根等。这很有效 2然后我尝试构建一个方法,该方法将已按顺序排序的ArrayList作为参数,并使用subList递归地构建左树和

我制作了一个ArrayList,其中填充了来自非平衡二叉树的值。ArrayList中的对象是按顺序遍历排序的

当我在LinkedBinaryTree类中构建二叉树时,我从编译器中得到一个找不到符号的错误。我很难堪,以下是我尝试过的

1我成功地将非arrayList中的值放入二叉树中,只是为了看看我是否正确理解了一般框架,树由节点组成,并使用打印行函数打印根,然后打印左侧根等。这很有效

2然后我尝试构建一个方法,该方法将已按顺序排序的ArrayList作为参数,并使用subList递归地构建左树和右树。我得到了找不到符号的错误,并浏览了这篇粘贴的文章

尝试找出导致问题的问题。我完全被难住了

public LinkedBinaryTree BinaryBalanceTreeMethod(java.util.List delta) {
    if (delta.isEmpty()) {
        return null;
    }

    int middle = delta.size() / 2;
    LinkedBinaryTree tree = new LinkedBinaryTree(delta.get(middle));
    tree.getRootNode.setLeft(BinaryBalanceTreeMethod(delta.subList(0, middle)));
    tree.getRootNode.setRight(BinaryBalanceTreeMethod((delta.subList(middle + 1, delta.size()))));
    return tree;    
}
如果有人需要查看主方法

Iterator it = treez.iteratorInOrder();
java.util.List listz = new java.util.ArrayList();

while (it.hasNext()) {
    listz.add(it.next());
}
System.out.println(listz.toString());
LinkedBinaryTree test = new LinkedBinaryTree()
test.BinaryBalanceTreeMethod(listz);

System.out.println(test.getRootElement());
我应该注意-我有另一个名为ArrayList的类,所以我必须使用该java.util.ArrayList来实例化

在main方法中,您遗漏了分号;在LinkedBinaryTree测试结束时=新建LinkedBinaryTree


谢谢,我修好了!我的LinkedBinaryTree类仍然没有加载-有什么想法吗?你能澄清一下在这种情况下你所说的“没有加载”是什么意思吗?你还犯同样的错误吗?事实上,我偶然发现了答案。这是我添加到树的方法,我尝试递归地添加到根!这是一个奇怪的错误,但无论如何感谢你的帮助:
System.out.println(listz.toString());
LinkedBinaryTree test = new LinkedBinaryTree() // you missed the ; here
test.BinaryBalanceTreeMethod(listz);