public class BinaryTree { private int[] arr; public BinaryTree(int[] arr) { this.arr=arr; } public void preorder() { this.preorder(0); } public void preorder(int index) { if(arr==null||arr.length==0) { System.out.println("null"); } System.out.print(arr[index]); if(index2+1<arr.length) preorder(2index+1); if(index2+2<arr.length) preorder(2index+2); } int max=arr[0]; public void removemax(int i) { if(max<arr[i]) max=arr[i]; int a=i; if(i2+1<arr.length) removemax(2i+1); if(i2+2<arr.length) removemax(2i+2); arr[a]=0; }} public static void main(String[] args) {
int [] arr = {1,3,4,5,7,8,6,2};
BinaryTree tree=new BinaryTree(arr);
tree.preorder();
tree.removemax(0);tree.preorder();
}请问我这段删除最大值的代码怎么就错了呢,希望可以有人帮我看一下,不胜感激,自己实在不知道怎么改了。
建议格式化一下代码,没法看
– 会长 5年前没法看+1
– 沈星繁 5年前