题解 | #判断是不是二叉搜索树#
判断是不是二叉搜索树
https://www.nowcoder.com/practice/a69242b39baf45dea217815c7dedb52b
<?php
/*class TreeNode{
var $val;
var $left = NULL;
var $right = NULL;
function __construct($val){
$this->val = $val;
}
}*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return bool布尔型
*/
function isValidBST( $root )
{
$prev = null;
return inOrder($root, $prev);
}
function inOrder($root, &$prev){
if($root == null){
return true;
}
$left = inOrder($root->left, $prev);
if($prev != null && $prev->val > $root->val){
return false;
}
$prev = $root;
$right = inOrder($root->right, $prev);
return $left && $right;
}
中序遍历法:如果是二叉搜索树,中序遍历一定是递增的
记住中序遍历获得前一个节点的方法:inOrder($root, &$prev), 注意这个$prev一定传实参