1
+ /* *
2
+ * Definition for a binary tree node.
3
+ * struct TreeNode {
4
+ * int val;
5
+ * TreeNode *left;
6
+ * TreeNode *right;
7
+ * TreeNode() : val(0), left(nullptr), right(nullptr) {}
8
+ * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
9
+ * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
10
+ * };
11
+ */
12
+
13
+ using namespace std ;
14
+ class Solution {
15
+ public:
16
+ bool isSameTree (TreeNode* p, TreeNode* q) {
17
+ if ((p == nullptr ) && (q == nullptr )) {
18
+ return true ;
19
+ }
20
+
21
+ if ((p == nullptr ) || (q == nullptr )) {
22
+ return false ;
23
+ }
24
+
25
+ if (p->val != q->val ) {
26
+ return false ;
27
+ }
28
+
29
+ return (isSameTree (p->right , q->right ) && isSameTree (p->left , q->left ));
30
+
31
+
32
+ }
33
+ };
34
+
35
+ // bool isSameTree(TreeNode* p, TreeNode* q) {
36
+ // is_p = true;
37
+ // Preorder(p);
38
+
39
+ // is_p = false;
40
+ // Preorder(q);
41
+
42
+ // if (p_traverse.size() != q_traverse.size()) {
43
+ // return false;
44
+ // }
45
+
46
+ // for (int i = 0; i < p_traverse.size(); i++) {
47
+ // if (p_traverse[i] != q_traverse[i]) {
48
+ // return false;
49
+ // }
50
+ // }
51
+
52
+ // return true;
53
+ // }
54
+
55
+ // void Preorder(TreeNode* node) {
56
+ // if (node == nullptr) {
57
+ // if (is_p) {
58
+ // p_traverse.push_back(1000000);
59
+ // } else {
60
+ // q_traverse.push_back(1000000);
61
+ // }
62
+
63
+ // }
64
+ // if (node != nullptr) {
65
+ // if (is_p) {
66
+ // p_traverse.push_back(node->val);
67
+ // } else {
68
+ // q_traverse.push_back(node->val);
69
+ // }
70
+ // Preorder(node->left);
71
+ // Preorder(node->right);
72
+ // }
73
+ // }
74
+
75
+ // private:
76
+ // vector<int> p_traverse;
77
+ // vector<int> q_traverse;
78
+ // bool is_p;
0 commit comments