LeetCode-Validate Binary Search Tree

来源:互联网 发布:淘宝欧时力旗舰店真假 编辑:程序博客网 时间:2024/05/23 01:42

题目:https://oj.leetcode.com/problems/validate-binary-search-tree/

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

Assume a 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.
源码:Java版本

算法分析:时间复杂度O(n),空间复杂度O(logn)。

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public boolean isValidBST(TreeNode root) {        return isValidBST(root,Integer.MIN_VALUE,Integer.MAX_VALUE);    }    public boolean isValidBST(TreeNode root, int lower, int upper) {if (root == null) {return true;}return root.val > lower && root.val < upper&& isValidBST(root.left, lower, root.val)&& isValidBST(root.right, root.val, upper);}    }


0 0
原创粉丝点击