LeetCode: Validate Binary Search Tree
来源:互联网 发布:java 获取方法的泛型 编辑:程序博客网 时间:2024/04/30 15:47
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.
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool isValidBST(TreeNode *root) { return validate(root, INT_MAX, INT_MIN); }private: bool validate(TreeNode *root, int max, int min) { if(root == NULL) return true; if(root->val >= max || root->val <= min) return false; return validate(root->left, root->val, min) && validate(root->right, max, root->val); }};
Round 2:
class Solution {public: bool isValidBST(TreeNode *root) {if(root == NULL)return true;long top = INT_MAX;long bot = INT_MIN;top++;bot--; return dfs(root, top, bot); }private:bool dfs(TreeNode *node, long max, long min){if(node == NULL)return true;if(node->val >= max || node->val <= min)return false;return dfs(node->left, std::min(max, (long)node->val), min) && dfs(node->right, max, std::max(min, (long)node->val));}};
0 0
- LeetCode: Validate Binary Search Tree
- [Leetcode] Validate Binary Search Tree
- LeetCode : Validate Binary Search Tree
- [LeetCode] Validate Binary Search Tree
- [LeetCode] Validate binary search tree
- [LeetCode]Validate Binary Search Tree
- [Leetcode]Validate Binary Search Tree
- [leetcode]Validate Binary Search Tree
- LeetCode-Validate Binary Search Tree
- [leetcode] Validate Binary Search Tree
- LeetCode - Validate Binary Search Tree
- [LeetCode] Validate Binary Search Tree
- Leetcode Validate Binary Search Tree
- LeetCode | Validate Binary Search Tree
- LeetCode - Validate Binary Search Tree
- Leetcode: Validate Binary Search Tree
- 【Leetcode】Validate Binary Search Tree
- 【leetcode】Validate Binary Search Tree
- ACM-高精度数
- 对java中equals和hashCode函数的一些理解
- 如何学习一门新的编程语言
- HDU-2844-Coins(多重背包)
- java螺旋方阵实现
- LeetCode: Validate Binary Search Tree
- JavaSE 之 如何将一个用逗号分隔的字符串转换成字符数组
- 图形用户界面设计-基本控件 java实验报告第四个
- Android开发入门——Socket编程简单介绍
- 1.1.2 Greedy Gift Givers【贪心】
- Android 动画框架详解1
- 每一个综艺,每一颗星辰
- Android 动画框架详解2
- Android Api 常用类库包介绍