Swordは、Offerの7日目の検索およびバックトラッキングアルゴリズムを指します(単純)

剣はオファー26を指します。木の下部構造

トピックのアイデア

引き続きAツリーをトラバースし、AツリーのポイントがBツリーのルートノードと一致する場合に、それが下部構造であるかどうかを判断します。判断関数では、Bツリーが最初にトラバースされる場合、それはtrueであり、そうでない場合、Aが最初にトラバースされる場合はfalseであることに注意してください。

コード

class Solution {
    
    
public:
    bool pan(TreeNode* A, TreeNode* B){
    
    
        if(!B)return true;
        if(!A)return false;
        //cout<<A->val<<" "<<B->val<<endl;
        if(A->val==B->val){
    
    
            return pan(A->left,B->left)&&pan(A->right,B->right);
        }else{
    
    
            return false;
        }
    }
    bool isSubStructure(TreeNode* A, TreeNode* B) {
    
    
        if(!B||!A)return false;
        if((A->val==B->val)&&pan(A->left,B->left)&&pan(A->right,B->right)){
    
    
            //cout<<A->val<<endl;
            return true;
        }else{
    
    
            //cout<<A->left->val<<endl;
            return isSubStructure(A->left,B)||isSubStructure(A->right,B);
        }
    }
};

剣はオファー27を指します。二分木の鏡像

トピックのアイデア

左側のサブツリーと右側のサブツリーを入れ替えて、再帰的に実行します

コード

class Solution {
    
    
public:
    TreeNode* mirrorTree(TreeNode* root) {
    
    
        if(!root)return NULL;
        TreeNode* l = mirrorTree(root->left);
        TreeNode* r = mirrorTree(root->right);
        root->left = r;
        root->right = l;
        return root;
    }
};

剣はオファー28を指します。対称二分木

トピックのアイデア

前の質問と同様ですが、2つのツリー構造が対称であるかどうかを判断するためのもう1つの判断関数があります。2つのツリーは同じ構造であることに注意してください。A->左とB->右を比較し、A->右とB->左を比較する必要があります。

コード

class Solution {
    
    
public:
    bool isSymmetric(TreeNode* root) {
    
    
        if(!root)return true;
        return pan(root->left,root->right);
    }
private:
    bool pan(TreeNode* A,TreeNode* B){
    
    
        if(!A&&!B){
    
    
            return true;
        }
        if(!A||!B||A->val!=B->val){
    
    
            return false;
        }
        return pan(A->left,B->right)&&pan(A->right,B->left);
    }

};

この記事が私の友達に役立つなら、私はいいねとサポートをしたいと思います〜ありがとうございました〜

ここに画像の説明を挿入


おすすめ

転載: blog.csdn.net/weixin_46627433/article/details/122978674