确定好判断条件即可:

  • 两者皆空为true,只有一个是空是false
  • 都不为空则判等
    • 相等的话继续往下递归
    • 不等的话返回false

c++实现

class Solution {
public:
    bool isSameTree(TreeNode* root1, TreeNode* root2) {
        // write code here
        if(root1 == nullptr && root2 ==nullptr)return true;
        if(root1 == nullptr || root2 ==nullptr)return false;
        if(root1->val == root2->val){
            return isSameTree(root1->left, root2->left) && isSameTree(root1->right, root2->right);
        }else{
            return false;
        }
    }
};