#include<iostream>
using namespace std;
struct TreeNode {
TreeNode* left;
TreeNode* Right;
double value;
};
bool checkin(TreeNode* a, TreeNode* b) {
if (a == b&&b == NULL) return true;
if (!a&&b || a && !b) return false;
return (a->value == b->value) && checkin(a->left, b->Right) && checkin(a->Right, b->left);
}
bool check(TreeNode *t) {
if (!t||t&&!t->left||t&&!t->Right) return false;
return checkin(t->left,t->Right);
}
int main() {
TreeNode *t = new TreeNode();
t->value = 1;
t->left = new TreeNode();
t->left->value = 2;
t->Right = new TreeNode();
t->Right->value = 2;
t->left->left = new TreeNode();
t->left->left->value = 3;
t->Right->Right = new TreeNode();
t->Right->Right->value = 3;
cout << (check(t) == true) << endl;
return 0;
}
剑指offer28
最新推荐文章于 2024-03-19 10:30:28 发布