leetcode 100. 相同的树 101. 对称二叉树

题意

一个判断两个树是否相同 , 一个判断两个树是否对称

代码

  bool dfs(TreeNode* p, TreeNode*q)
    {
        if((!p && q) || (!q && p))
            return false;
        if(!p && !q)
            return true;
        if(p->val != q->val)
            return false;
        if(!dfs(p->left,q->left))
            return false;
        if(!dfs(p->right,q->right))
            return false;
        return true;
    }
    bool isSameTree(TreeNode* p, TreeNode* q) {
       return  dfs(p,q);
    }

分割

class Solution {
public:
    bool issame(TreeNode* l, TreeNode* r)
    {
        if((!l&&r) ||(l && !r))
            return false;
        if(!l && !r)
            return true;
        if(l->val != r->val)
            return false;
        if(!issame(l->left,r->right))
            return false;
        if(!issame(l->right,r->left))
            return false;
        return true;
    }
    bool isSymmetric(TreeNode* root) {
        if(!root)
            return true;
        return issame(root->left,root->right);
    }
};
posted @ 2025-03-29 10:40  Guaninf  阅读(6)  评论(0)    收藏  举报