【发布时间】:2018-01-20 18:17:14
【问题描述】:
我正在尝试确定二叉搜索树是否平衡。我不太清楚如何存储左右分支的子节点的深度。如果右分支比左分支的长度最大为 1,我试图返回 true,反之亦然。
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {boolean}
*/
var isBalanced = function(root) {
var checkChild = function(root) {
if (this.left) {
var left = 1;
this.left.checkChild(root);
if (this.right) {
left += 1;
this.right.checkChild(root);
}
if (this.right) {
var right = 1;
this.right.checkChild(root);
if (this.left) {
right += 1;
this.right.checkChild(root);
}
}
}
if (left - right > 1 || right - left > 1) {
return false;
}
return true;
};
};
我正在考虑创建一个 var 以在每次从头部开始遍历左右分支的节点时递增。但我意识到这会将左分支的节点总数与右分支的节点总数进行比较,这是行不通的。
【问题讨论】:
标签: javascript binary-search-tree