目录
题目
深度优先搜索方法步骤
递归比较两棵树的结构和节点值
基本情况判断:
- 如果两棵树都为空(p和q都是nullptr),返回true
- 如果一棵树为空而另一棵不为空,返回false
节点值比较:
- 如果当前节点的值不相同,返回false
递归比较:
- 递归比较左子树是否相同
- 递归比较右子树是否相同
- 只有当左右子树都相同时,才返回true
使用"与"(&&)操作连接所有判断条件,确保所有条件都满足
正确的写法
cpp
class Solution {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {
if(!p && !q)
{
return true;
}
if(!p || !q)
{
return false;
}
if(p->val != q->val)
{
return false;
}
bool left_result = isSameTree(p->left,q->left);
bool right_result = isSameTree(p->right,q->right);
return left_result && right_result;
}
};