我尝试使用以下代码将二叉树存储到数组中:
public void inorderArray(int[] array) {
inorderArray(root, array, 0);
}
private static Integer inorderArray(TreeNode root, int[] array, int index) {
// an inorder traversal that stores the items in array
if(root == null){return index;}
inorderArray(root.left, array, index);
array[index++] = root.key;
inorderArray(root.right, array, index);
return index;
}
我一直在[94, 95, 0, 0, 0, 0, 0, 0, 0, 0]
,
它也不合适。
我不知道我做错了什么。任何帮助表示赞赏。
答案 0 :(得分:0)
您没有使用返回值。而且你需要使用它,因为index++
中的修改永远不会离开函数的范围。
private static int inorderArray(TreeNode root, int[] array, int index) {
if (root == null) {
return index;
}
index = inorderArray(root.left, array, index);
array[index++] = root.key;
index = inorderArray(root.right, array, index);
return index;
}