Validate Binary Search Tree_Leetcode
2015-01-24 11:23
411 查看
一开始以为是题目SB,只是简单比较了父节点和子节点的值。结果发现原来是自己SB了,除了考虑父节点,还要考虑祖先节点的值,所以要用两个参数来记录每个节点valid的范围(根据父节点的值来不断调整)。
public class Solution {
public boolean isValidBST(TreeNode root) {
if(root == null)
return true;
return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE);
}
public boolean isValidBST(TreeNode node, long min, long max){
if (node.left != null && (node.left.val >= node.val || node.left.val >= max || node.left.val <= min))
return false;
if (node.right != null && (node.right.val <= node.val || node.right.val <= min || node.right.val >=max))
return false;
if(node.left != null)
{
if(isValidBST(node.left, min, (max < node.val) ? max : node.val ) == false)
return false;
}
if(node.right != null)
{
if(isValidBST(node.right, (min > node.val) ? min : node.val, max ) == false)
return false;
}
return true;
}
}
public class Solution {
public boolean isValidBST(TreeNode root) {
if(root == null)
return true;
return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE);
}
public boolean isValidBST(TreeNode node, long min, long max){
if (node.left != null && (node.left.val >= node.val || node.left.val >= max || node.left.val <= min))
return false;
if (node.right != null && (node.right.val <= node.val || node.right.val <= min || node.right.val >=max))
return false;
if(node.left != null)
{
if(isValidBST(node.left, min, (max < node.val) ? max : node.val ) == false)
return false;
}
if(node.right != null)
{
if(isValidBST(node.right, (min > node.val) ? min : node.val, max ) == false)
return false;
}
return true;
}
}
相关文章推荐
- Leetcode Validate Binary Search Tree
- [Leetcode] Validate binary search tree 验证二叉搜索树
- leetcode — validate-binary-search-tree
- LeetCode 98. Validate Binary Search Tree
- [leetcode] Validate Binary Search Tree
- leetcode之Validate Binary Search Tree
- [LeetCode]98 Validate Binary Search Tree
- leetcode: 98. Validate Binary Search Tree
- [leetcode]Validate Binary Search Tree
- LeetCode --- 98. Validate Binary Search Tree
- 【LeetCode】Validate Binary Search Tree
- [leetcode] Validate Binary Search Tree dfs
- leetcode:Validate Binary Search Tree
- [LeetCode] 129: Validate Binary Search Tree
- leetcode Validate Binary Search Tree
- [LeetCode]Validate Binary Search Tree
- leetcode--Validate Binary Search Tree
- [LeetCode 98] Validate Binary Search Tree
- LeetCode -- Validate Binary Search Tree
- leetcode_98_Validate Binary Search Tree