У меня есть проблема, с которой я сталкиваюсь с несколькими проблемами, вопрос заключается в следующем:
Given a pre-constructed Binary Search Tree and an array, determine if the array will produce the same Binary Search Tree.
Теперь этот вопрос будет иметь предварительно сконструированный BST длявы, а затем он будет запускать следующий код:
boolean valid = true;
for (int i = 0;valid && i < arr.length; i ++) {
valid &= tree.checkPattern(arr[i]);
}
//These two methods below are in a different class. For every element in the array,
//the checkPattern method will be called, initially passing in the root of the BST
public void checkPattern(int key) {
recursiveFunction(root, key);
}
public boolean recursiveFunction(TreeNode current, int key){
// Recursive function
}
Цель состоит в том, чтобы написать recursiveFunction(root, arr[i])
, и намек на то, что класс TreeNode содержит логический visited
, который вы будете использоватьчтобы помочь с этим алгоритмом.
Я не могу понять, как решить эту проблему ... Учитывая ключ, вы должны проверить, чтобы увидеть, где он будет в основной BST, и еслиродитель уже посещен, тогда верните false?