[leetcode]98. Validate Binary Search Tree -- JavaScript 代码

来源:互联网 发布:大学生软件实训基地 编辑:程序博客网 时间:2024/06/08 05:53
/** * Definition for a binary tree node. * function TreeNode(val) { *     this.val = val; *     this.left = this.right = null; * } *//** * @param {TreeNode} root * @return {boolean} */var isValidBST = function(root) {    return isvalid(root,Infinity,-Infinity);    function isvalid(node,max,min){        if(node===null){            return true;        }        if(node.val>=max || node.val<=min) return false;        return isvalid(node.left,node.val,min) && isvalid(node.right,max,node.val);    }};

这道题的关键点在于,一个节点的所有左侧的节点,包括左节点的所有右节点,都不能大于它本身的值;所有右侧节点,包括右节点的左节点,也都不能小于它本身的值。
因此,节点(除了跟节点这样的特殊节点)其实上可以取值的范围是一个有限的区间。这就要求我们的递归函数需要3个参数,除了节点本身,还必须包括可以取得的最大值和最小值两个参数。

0 0
原创粉丝点击