二叉搜索树
定义
应用
/**
* Definition for a binary tree node.
* class TreeNode {
* int val;
* TreeNode? left;
* TreeNode? right;
* TreeNode([this.val = 0, this.left, this.right]);
* }
*/
class Solution {
bool isValidBST(TreeNode? root) {
return validateBST(root, -1 << 63, 1 << 63 - 1);
}
bool validateBST(TreeNode? node, int minVal, int maxVal) {
if (node == null) {
return true; // 空节点满足二叉搜索树定义,返回 true
}
if (node.val <= minVal || node.val >= maxVal) {
return false; // 当前节点值小于等于最小值或大于等于最大值,不满足二叉搜索树定义,返回 false
}
// 递归验证左子树和右子树
return validateBST(node.left, minVal, node.val) &&
validateBST(node.right, node.val, maxVal);
}
}
练习
Last updated