解題心得
如果只比 root 值還有 root 左子樹右子樹三個節點會錯。
改用傳當前區間去做比對。
程式碼
class Solution {
public:
bool isValid(TreeNode* root, long min, long max)
{
if(root == nullptr)
return true;
if(!(min < root->val && root->val < max))
return false;
return isValid(root->left, min, root->val) && isValid(root->right, root->val, max);
}
bool isValidBST(TreeNode* root) {
return isValid(root, LLONG_MIN, LLONG_MAX);
}
};
沒有留言:
張貼留言