题目
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 };