Сложность: easy
Дано корень бинарного дерева поиска (BST), верните минимальную абсолютную разницу между значениями любых двух разных узлов в дереве.
Пример:
Input: root = [4,2,6,1,3]
Output: 1
👨💻 Алгоритм:
1⃣ Обход дерева в порядке возрастания (инфиксный обход):
Создайте список inorderNodes для хранения значений узлов.
Выполните инфиксный обход дерева, добавляя значения узлов в список.
2⃣ Нахождение минимальной разницы:
Создайте переменную minDifference и инициализируйте её бесконечностью.
Пройдите по списку inorderNodes, начиная с индекса 1, и найдите минимальную абсолютную разницу между последовательными элементами.
3⃣ Возврат результата:
Верните minDifference.
😎 Решение:
var getMinimumDifference = function(root) {
const inorderNodes = [];
inorderTraversal(root, inorderNodes);
let minDifference = Infinity;
for (let i = 1; i < inorderNodes.length; i++) {
minDifference = Math.min(minDifference, inorderNodes[i] - inorderNodes[i - 1]);
}
return minDifference;
};
function inorderTraversal(node, inorderNodes) {
if (!node) return;
inorderTraversal(node.left, inorderNodes);
inorderNodes.push(node.val);
inorderTraversal(node.right, inorderNodes);
}Ставь 👍 и забирай 📚 Базу знаний
