leetcode题目6
题目描述
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例 :
输入: 1 1
/ \ / \
2 3 2 3
[1,2,3], [1,2,3]
输出: true
输入: 1 1
/ \
2 2
[1,2], [1,null,2]
输出: false
解答
方法:(递归法)
class Solution {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {
//如果两个树的节点都为空,则判断结束,返回true
if(p==NULL&&q==NULL){
return true;
}
//如果两棵树的节点都不为空,且对应节点的值相等,递归比较他们的对应的左子树和右子树的值是否相等
直到返回true或false
if(p!=NULL&&q!=NULL&&p->val==q->val){
return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
}else return false;
}
};
``