编程总结
在刷题之前需要反复练习的编程技巧,尤其是手写各类数据结构实现,它们好比就是全真教的上乘武功
二叉搜索树(BST)是二叉树的一种特殊表示形式,它满足如下特性:
每个节点中的值必须大于(或等于)存储在其左侧子树中的任何值。
每个节点中的值必须小于(或等于)存储在其右子树中的任何值
1. 验证二叉搜索树
98. 验证二叉搜索树
bool isValid(struct TreeNode *root, long min, long max) {
if (root == NULL) {
return 1; // 递归终止条件
}
if (min >= root->val) { // 当前节点必须大于min
return false;
}
if (max <= root->val) { // 当前节点必须小于max
return false;
}
return isValid(root->left, min, root->val) && isValid(root->right, root->val, max);
}
bool isValidBST(struct TreeNode *root) {
long min = LONG_MIN; // 注意测试用例有出现超过INT_MIN/INT_MAX的值
long max = LONG_MAX;
return isValid(root, min, max);
}