Я ссылался на следующую ссылку, чтобы увидеть, как обход inOrder можно сохранить в массив Binary Search Tree to inOrder Array.Хранение BinarySearchTree inOrder traversal в массиве
Мое дерево:
100
/\
50 300
/\
20 70
Когда первый элемент (20) вставляется в значение индекса массива увеличивается на 1. Теперь, когда управление переходит к выборки следующего узла (50) значение индекса становится 0.
код:
storeInOrder(root1,arr1,0);
private static void storeInOrder(Node root1, int[] arr1, int index) {
if(root1 == null){return;}
storeInOrder(root1.left, arr1,index);
arr1[index++] = root1.data;
storeInOrder(root1.right,arr1,index);
}
Ожидаемый результат в массиве: 20 50 70 100 300
Я получаю выход как 100 300 0 0 0
На каких языках вы пишете это? Похоже, что ваш индексный параметр не передается по ссылке. –
@TeddySterne Я пишу в Java – user2748161