LeetCode-100
问题复述
判断两个二叉树是否相同
解决方案
模板:
fun{
要做什么,放在这部分;
fun(左子树);
fun(右子树);
}
比较算法步骤:
先判断是否都为空,若是则为true;
否则就是不同时为空,判断是否有一个为空,另一个不为空,若是则一定为false;
否则就是都不为空,判断其值,若不相等,则false;
否则递归左右子树。
程序源码
class Solution {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {
if(p==nullptr&&q==nullptr){
return true;
}else if(p==nullptr||q==nullptr){
return false;
}else if(p->val!=q->val){
return false;
}else{
return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
}
}
};