mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
update: 平衡二叉树js版本格式化
This commit is contained in:
@ -606,29 +606,23 @@ func abs(a int)int{
|
|||||||
## JavaScript
|
## JavaScript
|
||||||
```javascript
|
```javascript
|
||||||
var isBalanced = function(root) {
|
var isBalanced = function(root) {
|
||||||
//还是用递归三部曲 + 后序遍历 左右中 当前左子树右子树高度相差大于1就返回-1
|
//还是用递归三部曲 + 后序遍历 左右中 当前左子树右子树高度相差大于1就返回-1
|
||||||
// 1. 确定递归函数参数以及返回值
|
// 1. 确定递归函数参数以及返回值
|
||||||
const getDepth=function(node){
|
const getDepth = function(node) {
|
||||||
// 2. 确定递归函数终止条件
|
// 2. 确定递归函数终止条件
|
||||||
if(node===null){
|
if(node === null) return 0;
|
||||||
return 0;
|
// 3. 确定单层递归逻辑
|
||||||
|
let leftDepth = getDepth(node.left); //左子树高度
|
||||||
|
let rightDepth = getDepth(node.right); //右子树高度
|
||||||
|
if(leftDepth === -1) return -1;
|
||||||
|
if(rightDepth === -1) return -1;
|
||||||
|
if(Math.abs(leftDepth - rightDepth) > 1) {
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
return 1 + Math.max(leftDepth, rightDepth);
|
||||||
}
|
}
|
||||||
// 3. 确定单层递归逻辑
|
|
||||||
let leftDepth=getDepth(node.left);//左子树高度
|
|
||||||
if(leftDepth===-1){
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
let rightDepth=getDepth(node.right);//右子树高度
|
return !(getDepth(root) === -1);
|
||||||
if(rightDepth===-1){
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if(Math.abs(leftDepth-rightDepth)>1){
|
|
||||||
return -1;
|
|
||||||
}else{
|
|
||||||
return 1+Math.max(leftDepth,rightDepth);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return getDepth(root)===-1?false:true;
|
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user