mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
添加 0110.平衡二叉树.md JavaScript语言版本的迭代解法
This commit is contained in:
@ -605,6 +605,7 @@ func abs(a int)int{
|
|||||||
```
|
```
|
||||||
|
|
||||||
## JavaScript
|
## JavaScript
|
||||||
|
递归法:
|
||||||
```javascript
|
```javascript
|
||||||
var isBalanced = function(root) {
|
var isBalanced = function(root) {
|
||||||
//还是用递归三部曲 + 后序遍历 左右中 当前左子树右子树高度相差大于1就返回-1
|
//还是用递归三部曲 + 后序遍历 左右中 当前左子树右子树高度相差大于1就返回-1
|
||||||
@ -627,6 +628,48 @@ var isBalanced = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
迭代法:
|
||||||
|
```javascript
|
||||||
|
// 获取当前节点的高度
|
||||||
|
var getHeight = function (curNode) {
|
||||||
|
let queue = [];
|
||||||
|
if (curNode !== null) queue.push(curNode); // 压入当前元素
|
||||||
|
let depth = 0, res = 0;
|
||||||
|
while (queue.length) {
|
||||||
|
let node = queue[queue.length - 1]; // 取出栈顶
|
||||||
|
if (node !== null) {
|
||||||
|
queue.pop();
|
||||||
|
queue.push(node); // 中
|
||||||
|
queue.push(null);
|
||||||
|
depth++;
|
||||||
|
node.right && queue.push(node.right); // 右
|
||||||
|
node.left && queue.push(node.left); // 左
|
||||||
|
} else {
|
||||||
|
queue.pop();
|
||||||
|
node = queue[queue.length - 1];
|
||||||
|
queue.pop();
|
||||||
|
depth--;
|
||||||
|
}
|
||||||
|
res = res > depth ? res : depth;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
var isBalanced = function (root) {
|
||||||
|
if (root === null) return true;
|
||||||
|
let queue = [root];
|
||||||
|
while (queue.length) {
|
||||||
|
let node = queue[queue.length - 1]; // 取出栈顶
|
||||||
|
queue.pop();
|
||||||
|
if (Math.abs(getHeight(node.left) - getHeight(node.right)) > 1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
node.right && queue.push(node.right);
|
||||||
|
node.left && queue.push(node.left);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
## C
|
## C
|
||||||
递归法:
|
递归法:
|
||||||
```c
|
```c
|
||||||
|
Reference in New Issue
Block a user