varisValidBST=function(root){// 搜索二叉树中序遍历之后的结果数组一定是升序if(!root){returntrue;}let result =[];vardg=function(node){if(node){dg(node.left);
result.push(node.val);dg(node.right);}}dg(root);for(let i =1; i < result.length; i++){if(result[i-1]>= result[i]){returnfalse;}}returntrue;};
递归
varisValidBST=function(root){if(!root){returntrue;}vardg=function(node,min,max){// 遍历到叶子节点if(!node){returntrue;}// 判断左子树上所有节点的值是否均小于它的根节点的值,右子树上所有节点的值是否均大于它的根节点的值if(node.val <= min || node.val >= max){returnfalse;}returndg(node.left,min,node.val)&&dg(node.right,node.val,max);}returndg(root,-Infinity,Infinity);};