Leetcode100.相同的树

题目

 1 class Solution {
 2 public:
 3     bool isSameTree(TreeNode* p, TreeNode* q) {
 4         if(p == NULL && q == NULL){
 5             return true;
 6         }else if(p == NULL || q == NULL ){
 7              return false;
 8         }
 9 
10         queue<TreeNode*>queue1,queue2;
11         queue1.push(p);
12         queue2.push(q);
13 
14         while(!queue1.empty() && !queue2.empty()){
15             auto node1 = queue1.front();
16             queue1.pop();
17             auto node2 = queue2.front();
18             queue2.pop();
19             if(node1->val != node2->val) return false;
20             auto left1 = node1->left, right1 = node1->right, left2 = node2->left, right2 = node2->right;
21             if((left1 == NULL) ^ (left2 == NULL))
22                 return false;
23             if((right1 == NULL) ^ (right2 == NULL))
24                 return false;
25             
26             if (left1 != NULL) queue1.push(left1);
27             if (left2 != NULL) queue2.push(left2);
28             if(right1 != NULL) queue1.push(right1);
29             if(right2 != NULL) queue2.push(right2);
30         }
31            
32         return queue1.empty() && queue2.empty();
33     }
34  };
原文地址:https://www.cnblogs.com/fresh-coder/p/14221758.html