diff options
author | crupest <crupest@outlook.com> | 2020-10-07 09:39:07 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-10-07 09:39:07 +0800 |
commit | 1e4ccbddefddcf0dfd9966e3b579b994b4efdcbb (patch) | |
tree | 464c24a015a864e81b37099d34110ca27145db01 /works | |
parent | 7b272c8afa545bf358577b865d8eab1fb66df4e3 (diff) | |
download | crupest-1e4ccbddefddcf0dfd9966e3b579b994b4efdcbb.tar.gz crupest-1e4ccbddefddcf0dfd9966e3b579b994b4efdcbb.tar.bz2 crupest-1e4ccbddefddcf0dfd9966e3b579b994b4efdcbb.zip |
import(solutions): Add problem 98 .
Diffstat (limited to 'works')
-rw-r--r-- | works/solutions/cpp/98.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/works/solutions/cpp/98.cpp b/works/solutions/cpp/98.cpp new file mode 100644 index 0000000..73cefa0 --- /dev/null +++ b/works/solutions/cpp/98.cpp @@ -0,0 +1,29 @@ +#include <cstddef> + +struct TreeNode +{ + int val; + TreeNode *left; + TreeNode *right; + TreeNode(int x) : val(x), left(NULL), right(NULL) {} +}; + +#include <limits> + +class Solution +{ +public: + bool dfs(TreeNode *node, long long min, long long max) + { + if (node == nullptr) + return true; + if (node->val <= min || node->val >= max) + return false; + return dfs(node->left, min, node->val) && dfs(node->right, node->val, max); + } + + bool isValidBST(TreeNode *root) + { + return dfs(root, std::numeric_limits<long long>::min(), std::numeric_limits<long long>::max()); + } +}; |