美文网首页
剑指offer 28 树是否镜像

剑指offer 28 树是否镜像

作者: 再凌 | 来源:发表于2020-05-01 13:10 被阅读0次

    我的思路是将左子树先swap, 再检查和右子树是否一样, 显然这样修改了原来的数据结构.

    更好的思路是, 检查l->right和r->left && l->left和r->right

    还是要细心找规律啊.....

    贴上修改后的代码

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     struct TreeNode *left;
     *     struct TreeNode *right;
     * };
     */
    
    
    bool check(struct TreeNode *l, struct TreeNode *r)
    {
        if(!l && !r) return true;
        if(!l && r) return false;
        if(!r && l) return false;
        if(l->val != r->val) return false;
       return (check(l->left,r->right) && check(l->right,r->left));
    
    }
    
    bool isSymmetric(struct TreeNode* root){
        if(!root) return true;
        return check(root->left, root->right);
    }
    

    相关文章

      网友评论

          本文标题:剑指offer 28 树是否镜像

          本文链接:https://www.haomeiwen.com/subject/outqghtx.html