用时 : 10min 利用前序遍历二叉树递增的性质解决 var minDiffInBST = function(root) { var min = Infinity var pre = null var dfs = function (root) { if (!root) return if (root.left) { dfs(root.left) } if (pre == null) { pre …
用时 10min 直接用二叉搜索树中序遍历递增的性质就好了 中序遍历找到左孩子 pre 是否存在 不存在,赋值 ,找右孩子,返回 1 存在,是否比 val 小 是,非递增,返回 false 否,递增,赋值 pre ,返回 1 var isValidBST = function(root) { var preVal = null var DFS = function(root) { var left …
用时:60min 思路还是中序遍历,使用pre缓存前一个节点,因为中序遍历是递增的,所以一定是先找到大的,再找到小的。 所以第一个出问题的是pre,第二个是root var recoverTree = function(root) { var left = null var right = null var pre = null // 一定是先找到大的,再找到小的,所以第一个出问题的是pre,第二 …