题目:相同的树

解题思路:
根据题目描述如果两个二叉树都为空,则两个二叉树相同。如果两个二叉树中只有一个为空,则两个二叉树一定不相同。
如果两个二叉树都不为空,那么首先判断它们的根节点的值是否相同,若不相同则两个二叉树一定不同,若相同,再分别判断两个二叉树的左子树是否相同以及右子树是否相同。递归地判断两个二叉树是否相同。
最终代码:
cpp
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
//同时为空
if(p == NULL && q == NULL)
{
return true;
}
//一个为空
if(p == NULL || q == NULL)
{
return false;
}
//都不为空
if(p->val != q->val)
{
return false;
}
return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}
赶紧动起手来吧!!!
点击下方即可跳转
相同的树