Repository navigation
Expand file tree
/
Copy pathday40.cpp
More file actions
59 lines (58 loc) · 1.69 KB
/
Copy pathday40.cpp
File metadata and controls
59 lines (58 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Solution110 {
public:
int maxHeight(TreeNode* root){
if (root==nullptr){
return 0;
}
return 1+max(maxHeight(root->left),maxHeight(root->right));
}
bool isBalanced(TreeNode* root) {
if (root==nullptr){
return true;
}
int leftheight=maxHeight(root->left);
int rightheight=maxHeight(root->right);
if (abs(leftheight-rightheight)>1){
return false;
} return (isBalanced(root->left) && isBalanced(root->right));
}
};
class Solution100 {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {
if (p==nullptr && q==nullptr){
return true;
}
if (p!=nullptr && q==nullptr || p==nullptr && q!=nullptr){
return false;
}
if (p!=nullptr && q!= nullptr && p->val != q->val){
return false;
}
if (p!=nullptr && q!=nullptr && p->val == q->val){
return (isSameTree(p->left,q->left) && isSameTree(p->right,q->right));
} return true;
}
};
class Solution101 {
public:
bool isSymmetric(TreeNode* root) {
if (root==nullptr){
return true;
} return (isMirror(root->right,root->left));
}
bool isMirror(TreeNode* p,TreeNode* q){
if (p==nullptr && q==nullptr){
return true;
}
if (p!=nullptr &&q==nullptr || p==nullptr&& q!=nullptr){
return false;
}
if (p!=nullptr && q!=nullptr && p->val!=q->val){
return false;
}
if (p!=nullptr && q!=nullptr && p->val==q->val){
return (isMirror(p->left,q->right) && isMirror(p->right,q->left));
} return true;
}
};