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