/**
* 判断一棵树是不是 avl平衡树
*/
const { tree } = require("./utils/BinarySearchTree");
function isAvlTree(root) {
if (root == undefined || root == null) {
return {
level: 0,
isAvl: true,
};
}
let leftDelta = isAvlTree(root.leftNode);
let rightDelta = isAvlTree(root.rightNode);
let delta = leftDelta.level - rightDelta.level;
let level = Math.max(leftDelta.level, rightDelta.level) + 1;
return {
isAvl: leftDelta.isAvl && rightDelta.isAvl && Math.abs(delta) < 2,
level,
};
}
const delta = isAvlTree(tree);
console.log("是不是一棵平衡树: ", delta.isAvl);
数据结构 js 判断二叉树是不是一棵平衡树
于 2022-05-23 20:27:42 首次发布