通过层次遍历同时遍历两个树,将每个节点进行比较。
bool isSameTree(TreeNode* p, TreeNode* q) {
queue<TreeNode*> q1,q2;
if(p)q1.push(p);
if(q)q2.push(q);
while(!q1.empty()&&!q2.empty()){
TreeNode* t1 = q1.front();q1.pop();
TreeNode* t2 = q2.front();q2.pop();
if(t1->val!=t2->val)return false;
if(t1->left)q1.push(t1->left);
if(t2->left)q2.push(t2->left);
if(q1.size()!=q2.size())return false;
if(t1->right)q1.push(t1->right);
if(t2->right)q2.push(t2->right);
if(q1.size()!=q2.size())return false;
}
if(q1.size()!=q2.size())return false;
return true;
}
1247

被折叠的 条评论
为什么被折叠?



