描述
給定一個二叉樹根節點,請你判斷這棵樹是不是二叉搜尋樹。
public class BstTree {
static class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
/**
* 代碼中的類名、方法名、參數名已經指定,請勿修改,直接傳回方法規定的值即可
*
*
* @param root TreeNode類
* @return bool布爾型
*/
int pre = Integer.MIN_VALUE;
public boolean isValidBST (TreeNode root) {
if(null == root){
return true;
}
if(!isValidBST(root.left)){
return false;
}
// 搜尋二叉樹的特點. 利用中序周遊,目前節點應該比上一個節點的值大,否則不是搜尋二叉樹
if(root.val < pre){
return false;
}
pre = root.val;
return isValidBST(root.right);
}
public static void main(String[] args) {
}
}