98. Validate Binary Search Tree
Given a binary tree, determine if it is a valid binary search tree (BST).
Assume a BST is defined as follows:
- The left subtree of a node contains only nodes with keys less than the node's key.
- The right subtree of a node contains only nodes with keys greater thanthe node's key.
- Both the left and right subtrees must also be binary search trees.
Example 1:
Input: 2 / 1 3 Output: true
Example 2:
5 / 1 4 / 3 6 Output: false Explanation: The input is: [5,1,4,null,null,3,6]. The root node's value is 5 but its right child's value is 4.
题意:判断一棵树是否是合法的二叉搜索树
代码如下:
/** * 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) { if(!root) return true; let vals=[]; inorder(root,vals); for(let i=0;i<vals.length-1;i++){ if(vals[i]>=vals[i+1]) return false; } return true; }; var inorder=function(root,vals){ if(!root) return ; inorder(root.left,vals); vals.push(root.val); inorder(root.right,vals); }