diff --git a/README.md b/README.md index f328996..8aaf808 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ |剑指 Offer 26|[树的子结构](#)|[Java](./src/com/leetcode/submissions/IsSubStructure.java)|Medium| |剑指 Offer 55 - II|[平衡二叉树](#)|[Java](./src/com/leetcode/submissions/IsBalanced.java)|Easy| |814 |[二叉树剪枝](#)|[Java](./src/com/leetcode/submissions/BinaryTreePruning.java)|Medium| +|面试题 04.05|[合法二叉搜索树](#)|[Java](./src/com/leetcode/submissions/IsValidBST.java)|Medium| ## 题目目录 diff --git a/src/com/leetcode/submissions/IsValidBST.java b/src/com/leetcode/submissions/IsValidBST.java new file mode 100644 index 0000000..b67e5ef --- /dev/null +++ b/src/com/leetcode/submissions/IsValidBST.java @@ -0,0 +1,28 @@ +package com.leetcode.submissions; + +import com.leetcode.extend.TreeNode; + +/** + * 面试题 04.05. 合法二叉搜索树 + * Create by Ranzd on 2021-01-25 20:18 + * + * @author ranzhendong@maoyan.com + */ +public class IsValidBST { + public long MAX_VAL = Long.MIN_VALUE; + + public boolean isValidBST(TreeNode root) { + if (root == null) { + return true; + } + boolean left = isValidBST(root.left); + if (!left) { + return false; + } + if (MAX_VAL >= root.val) { + return false; + } + MAX_VAL = root.val; + return isValidBST(root.right); + } +}