mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
Merge pull request #703 from martisss/master
增加530二叉搜索树的最小绝对差.md js递归与迭代解法
This commit is contained in:
@ -197,11 +197,10 @@ func findContentChildren(g []int, s []int) int {
|
|||||||
|
|
||||||
return child
|
return child
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Javascript:
|
Javascript:
|
||||||
```Javascript
|
```
|
||||||
|
|
||||||
var findContentChildren = function(g, s) {
|
var findContentChildren = function(g, s) {
|
||||||
g = g.sort((a, b) => a - b)
|
g = g.sort((a, b) => a - b)
|
||||||
s = s.sort((a, b) => a - b)
|
s = s.sort((a, b) => a - b)
|
||||||
|
@ -265,7 +265,7 @@ func getMinimumDifference(root *TreeNode) int {
|
|||||||
```
|
```
|
||||||
|
|
||||||
## JavaScript
|
## JavaScript
|
||||||
|
递归 先转换为有序数组
|
||||||
```javascript
|
```javascript
|
||||||
/**
|
/**
|
||||||
* Definition for a binary tree node.
|
* Definition for a binary tree node.
|
||||||
@ -297,6 +297,47 @@ var getMinimumDifference = function (root) {
|
|||||||
return diff;
|
return diff;
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
递归 在递归的过程中更新最小值
|
||||||
|
```js
|
||||||
|
var getMinimumDifference = function(root) {
|
||||||
|
let res = Infinity
|
||||||
|
let preNode = null
|
||||||
|
// 中序遍历
|
||||||
|
const inorder = (node) => {
|
||||||
|
if(!node) return
|
||||||
|
inorder(node.left)
|
||||||
|
// 更新res
|
||||||
|
if(preNode) res = Math.min(res, node.val - preNode.val)
|
||||||
|
// 记录前一个节点
|
||||||
|
preNode = node
|
||||||
|
inorder(node.right)
|
||||||
|
}
|
||||||
|
inorder(root)
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
迭代 中序遍历
|
||||||
|
```js
|
||||||
|
var getMinimumDifference = function(root) {
|
||||||
|
let stack = []
|
||||||
|
let cur = root
|
||||||
|
let res = Infinity
|
||||||
|
let pre = null
|
||||||
|
while(cur || stack.length) {
|
||||||
|
if(cur) {
|
||||||
|
stack.push(cur)
|
||||||
|
cur = cur.left
|
||||||
|
} else {
|
||||||
|
cur = stack.pop()
|
||||||
|
if(pre) res = Math.min(res, cur.val - pre.val)
|
||||||
|
pre = cur
|
||||||
|
cur = cur.right
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
||||||
|
Reference in New Issue
Block a user