首页 > 代码库 > Validate Binary Search Tree [leetcode]
Validate Binary Search Tree [leetcode]
在递归函数中,加上max和min,保存当前子树的最大值和最小值
合法的二叉查找树:
1.左子树最大值<根节点
2.右子树最小值>根节点
3.子树均为合法的BST
bool isValidBST(TreeNode *root) { if (!root) return true; int max, min; return isValid(root, max, min); } bool isValid(TreeNode * root, int & max, int & min) { int subTreeMax, subTreeMin; max = min = root->val; if (root->left) { if (!isValid(root->left, subTreeMax, subTreeMin)) return false; if (subTreeMax >= root->val) return false; min = subTreeMin; } if (root->right) { if (!isValid(root->right, subTreeMax, subTreeMin)) return false; if (subTreeMin <= root->val) return false; max = subTreeMax; } return true; }
Validate Binary Search Tree [leetcode]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。