h******o 发帖数: 6 | 1 bool helper(TreeNode *node, int min, int max) {
if (node == nullptr) return true;
return node->val < max && node->val > min && helper(node->left, min
, node->val) && helper(node->right, node->val, max);
}
bool isValidBST(TreeNode *root) {
if (root && (root->val == INT_MIN || root->val == INT_MAX)) {
if (!root->left && !root->right) {
return true;
}
}
return helper(root, INT_MIN, INT_MAX);
}
fail {-2147483648,#,2147483647} 因为新的test case加了node是int_max和int_min
的情况
请问怎么简洁的处理这个case呢? | l**********0 发帖数: 13 | 2 bool helper(TreeNode *node, double min, double max)
helper(root, INT_MIN-1, INT_MAX+1); | k*******a 发帖数: 433 | | h******o 发帖数: 6 | 4
你这个必然overflow啊
【在 l**********0 的大作中提到】 : bool helper(TreeNode *node, double min, double max) : helper(root, INT_MIN-1, INT_MAX+1);
| h******o 发帖数: 6 | 5
方法都差不多 主要是怎么handle的corner case 这个貌似是这两天刚加的
【在 k*******a 的大作中提到】 : 我直接中序遍历的
| h*********g 发帖数: 51 | |
|