validate-binary-search-tree
1.0.0
Validate Binary Search Tree
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
1
#include <iostream>
2
#include <vector>
3
#include <stack>
4
#include <algorithm>
5
6
using namespace
std;
7
11
struct
TreeNode
12
{
13
int
val
;
14
TreeNode
*
left
;
15
TreeNode
*
right
;
16
TreeNode
() :
val
(0),
left
(nullptr),
right
(nullptr) {}
17
TreeNode
(
int
x) :
val
(x),
left
(nullptr),
right
(nullptr) {}
18
TreeNode
(
int
x,
TreeNode
*
left
,
TreeNode
*
right
) :
val
(x),
left
(
left
),
right
(
right
) {}
19
};
20
21
class
Solution
22
{
23
public
:
24
bool
isValidBST
(
TreeNode
* root)
25
{
26
return
validate
(root,
nullptr
,
nullptr
);
27
}
28
29
private
:
30
bool
validate
(
TreeNode
* node,
TreeNode
* min_node,
TreeNode
* max_node)
31
{
32
if
(!node)
33
return
true
;
34
if
((min_node && node->
val
<= min_node->
val
) || (max_node && node->
val
>= max_node->
val
))
35
return
false
;
36
return
validate
(node->
left
, min_node, node) &&
validate
(node->
right
, node, max_node);
37
}
38
};
39
40
void
delete_tree
(
TreeNode
* root)
41
{
42
if
(root ==
nullptr
)
43
return
;
44
delete_tree
(root->
left
);
45
delete_tree
(root->
right
);
46
delete
root;
47
}
48
49
int
main
()
50
{
51
// TreeNode* root = new TreeNode(5, new TreeNode(1), new TreeNode(4, new TreeNode(3), new TreeNode(6)));
52
// TreeNode* root = new TreeNode(5, new TreeNode(1), new TreeNode(6, new TreeNode(3), new TreeNode(7)));
53
// TreeNode* root = new TreeNode(2, new TreeNode(1), new TreeNode(3));
54
TreeNode
* root =
new
TreeNode
(5,
new
TreeNode
(4),
new
TreeNode
(6,
new
TreeNode
(3),
new
TreeNode
(7)));
55
Solution
sol;
56
cout <<
"output: "
<< sol.
isValidBST
(root) << endl;
57
delete_tree
(root);
58
return
0;
59
}
Solution
Definition
main.cpp:22
Solution::isValidBST
bool isValidBST(TreeNode *root)
Definition
main.cpp:24
Solution::validate
bool validate(TreeNode *node, TreeNode *min_node, TreeNode *max_node)
Definition
main.cpp:30
delete_tree
void delete_tree(TreeNode *root)
Definition
main.cpp:40
main
int main()
Definition
main.cpp:49
TreeNode
Definition for a binary tree node.
Definition
main.cpp:12
TreeNode::val
int val
Definition
main.cpp:13
TreeNode::left
TreeNode * left
Definition
main.cpp:14
TreeNode::TreeNode
TreeNode(int x, TreeNode *left, TreeNode *right)
Definition
main.cpp:18
TreeNode::right
TreeNode * right
Definition
main.cpp:15
TreeNode::TreeNode
TreeNode(int x)
Definition
main.cpp:17
TreeNode::TreeNode
TreeNode()
Definition
main.cpp:16
main.cpp
Generated by
1.9.8