Day96 | 灵神 | 二叉树 相同的树

Day96 | 灵神 | 二叉树 相同的树

100.相同的树

100. 相同的树 - 力扣(LeetCode)

思路:

就是个easy题没啥好说的,就是遍历就行

不同的情况是

1.p为空q不为空

2.p不为空q为空

3.pq值不同

相同的情况是

pq均为空

注:pq值相同不能说明是true,还要看pq的左右子树

完整代码:

class Solution {
public:
    bool isSameTree(TreeNode* p, TreeNode* q) {
        if(p==nullptr&&q!=nullptr)
            return false;
        else if(p!=nullptr&&q==nullptr)
            return false;
        else if(p==nullptr&&q==nullptr)
            return true;
        else if(p->val!=q->val)
            return false;
        else if(p->val==q->val)
            return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
        return false;
    }
};

灵神的简洁版代码

class Solution {
public:
    bool isSameTree(TreeNode* p, TreeNode* q) {
        if (p == nullptr || q == nullptr) {
            return p == q; // 必须都是 nullptr
        }
        return p->val == q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
    }
};

你可能感兴趣的:(刷题记录,数据结构,二叉树,c++)