Merge pull request #459 from xllpiupiu/master

669修剪二叉搜索树JavaScript版本
This commit is contained in:
程序员Carl
2021-07-03 17:18:24 +08:00
committed by GitHub

View File

@ -315,6 +315,59 @@ func trimBST(root *TreeNode, low int, high int) *TreeNode {
```
JavaScript版本
迭代:
```js
var trimBST = function(root, low, high) {
if(root === null) {
return null;
}
while(root !==null &&(root.val<low||root.val>high)) {
if(root.val<low) {
root = root.right;
}else {
root = root.left;
}
}
let cur = root;
while(cur!==null) {
while(cur.left&&cur.left.val<low) {
cur.left = cur.left.right;
}
cur = cur.left;
}
cur = root;
//判断右子树大于high的情况
while(cur!==null) {
while(cur.right&&cur.right.val>high) {
cur.right = cur.right.left;
}
cur = cur.right;
}
return root;
};
```
递归:
```js
var trimBST = function (root,low,high) {
if(root === null) {
return null;
}
if(root.val<low) {
let right = trimBST(root.right,low,high);
return right;
}
if(root.val>high) {
let left = trimBST(root.left,low,high);
return left;
}
root.left = trimBST(root.left,low,high);
root.right = trimBST(root.right,low,high);
return root;
}
```
-----------------------
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)