题解 | #判断是不是二叉搜索树#
判断是不是二叉搜索树
https://www.nowcoder.com/practice/a69242b39baf45dea217815c7dedb52b
/** * @param root TreeNode类 * @return bool布尔型 */ function isValidBST( root ) { return isValid(root); } function isValid(root) { let pre = null; const judge = (root) => { if(!root) return true; const leftIsValid = judge(root.left); if(pre && pre.val >= root.val) { return false; } pre = root; const rightIsValid = judge(root.right); return leftIsValid && rightIsValid; } return judge(root); } module.exports = { isValidBST : isValidBST };
思路:
二叉搜索树,按中序遍历得到的元素是单调递增的,可以借助这个特性来判断二叉树是否是二叉搜索树。
利用一个pre哨兵保存前一个节点,然后用他和当前节点比较。