赞
踩
二叉搜索树定义如下:
将验证二叉搜索树计算同样可以转换为相同子问题,所以比较适合用递归。
1.递归的退出条件:
节点返回空为ture,节点的值不在对应数据大小范围内返回false。
2.递归方程:
check(TreeNode node,int min,int max).
node为root的左节点时,max更新为root.val
node为root的右节点时,min更新为root.val
- package test8;
-
- class TreeNode {
- int val;
- TreeNode left;
- TreeNode right;
- TreeNode() {}
- TreeNode(int val) { this.val = val; }
- TreeNode(int val, TreeNode left, TreeNode right) {
- this.val = val;
- this.left = left;
- this.right = right;
- }
- }
-
- class Solution {
-
- public boolean isValidBST(TreeNode root) {
- return check(root,Long.MIN_VALUE,Long.MAX_VALUE);
- }
-
- public boolean check(TreeNode root,long min,long max){
- if(root==null){
- return true;
- }
- if(root.val<=min||root.val>=max){
- return false;
- }
- return check(root.left,min,root.val)&&check(root.right,root.val,max);
- }
-
- public static void main(String[] args) {
- Solution solution=new Solution();
- TreeNode treeNode=new TreeNode(1);
- treeNode.left=new TreeNode(2);
- treeNode.left.left=new TreeNode(3);
- treeNode.left.right=new TreeNode(4);
- treeNode.right=new TreeNode(2);
- treeNode.right.left=new TreeNode(4);
- treeNode.right.right=new TreeNode(3);
- int res=solution.isValidBST(treeNode);
- System.out.println(res);
- }
- }
-
-
QA:待定
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。