首页 > 其他 > 详细

98. Validate Binary Search Tree 检验二叉树是不是bst

时间:2021-07-11 11:28:42      阅读:16      评论:0      收藏:0      [点我收藏+]

Given the root of a binary tree, determine if it is a valid binary search tree (BST).

A valid BST is defined as follows:

  • The left subtree of a node contains only nodes with keys less than the node‘s key.
  • The right subtree of a node contains only nodes with keys greater than the node‘s key.
  • Both the left and right subtrees must also be binary search trees.

 

Example 1:

技术分享图片

Input: root = [2,1,3]
Output: true

Example 2:

技术分享图片

Input: root = [5,1,4,null,null,3,6]
Output: false
Explanation: The root node‘s value is 5 but its right child‘s value is 4.

 

复习时还不会的地方:不是在主函数里分左右,而是在helper中分左右。因为合理范围的界限需要在递归内部讨论,左子树边是min-root,右子树是root-max

 

 

public class Solution {
    public boolean isValidBST(TreeNode root) {
        return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE);
    }
    
    public boolean isValidBST(TreeNode root, long minVal, long maxVal) {
        if (root == null) return true;
        if (root.val >= maxVal || root.val <= minVal) return false;
        return isValidBST(root.left, minVal, root.val) && isValidBST(root.right, root.val, maxVal);
    }
}

 

 

98. Validate Binary Search Tree 检验二叉树是不是bst

原文:https://www.cnblogs.com/immiao0319/p/14997942.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!