classSolution{
publicbooleanevaluateTree(TreeNode root){
if(root.left ==null)return root.val ==0?false:true;boolean left =evaluateTree(root.left);boolean right =evaluateTree(root.right);return root.val ==2? left | right : left & right;}}
classSolution{
long prev =Long.MIN_VALUE;publicbooleanisValidBST(TreeNode root){
if(root ==null)returntrue;//判断左子树是否是二叉搜索树boolean left =isValidBST(root.left);//剪枝if(left ==false)returnfalse;//判断当前结点是否是二叉搜索树boolean cur =false;if(root.val > prev) cur =true;//剪枝if(cur ==false)returnfalse;
prev = root.val;//判断右子树是否是二叉搜索树boolean right =isValidBST(root.right);return left && cur && right;}}