java - 为什么我不能将 int 类型值添加到数组中
问题描述
import java.util.ArrayList;
import java.util.Collection;
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x){val=x;}
}
public class SortedArrayToBalancedBST {
public TreeNode sortedArrayToBST(int[] nums) {
if(nums.length==0) return null;
else return sortedArrayToBST(nums, 0, nums.length-1);
}
public TreeNode sortedArrayToBST(int[] nums, int left, int right){
ArrayList<TreeNode> list = New ArrayList<TreeNode>()
TreeNode root =null;
int mid=(right+left)/2;
if(right>=left){
root= new TreeNode(nums[mid]);
root.left=sortedArrayToBST(nums, left, mid-1);
root.right=sortedArrayToBST(nums, mid+1, right);
list.add(root);
//System.out.print(list);
}
if(left>right) return null;
return root;
}
public static void main(String[] args) {
int nums[]= {1,3,5,7,9};
SortedArrayToBalancedBST s = new SortedArrayToBalancedBST();
s.sortedArrayToBST(nums);
System.out.print(s.toString())
}
我想使用上面的代码创建一个平衡树。但是java返回一个错误告诉我:Cannot invoke add(TreeNode) on the array type int[],那我该怎么办,为什么我不能将int类型的值添加到数组中?如果我是对的,我还希望输出看起来像 [5,3,7,1,null,null,9]。
解决方案
数组类型没有add(...)
方法。您必须指定要替换元素的索引(即arr[0] = 1;
)。此外,如果您的数组将包含空值,请考虑使用Integer[]
类型而不是原语。
推荐阅读
- wordpress - 将 Google API 添加到自定义 Wordpress 站点
- scala - 如何在 Spark Scala 中读取带有根元素的多行 json?
- angular - 对打字稿范围感到困惑
- java - Java屏幕如何使输入行始终在下方
- reactjs - Setting first char uppercase when setting state in react
- c++ - 仅在提供的差异内将警告变为错误
- omnet++ - omnet++ 聚合器模块中的消息接收错误
- android - Jenkins Android build fails - can't build libwebviewchromium.so
- sql - Count(*) 不返回“1”,尽管我的 &inputs 是正确的?
- google-sheets - 将行插入使用 IMPORTRANGE 导入的数据中