判斷一個二叉樹是不是另一個二叉樹的子結構

輸入兩棵二叉樹A,B,判斷B是不是A的子結構。約定空樹不是任意一個樹的子結構

class Solution {
    bool isSubtree(TreeNode* pRootA, TreeNode* pRootB) {
        if (pRootB == NULL) return true;
        if (pRootA == NULL) return false;
        if (pRootB->val == pRootA->val) {
            return isSubtree(pRootA->left, pRootB->left)&& isSubtree(pRootA->right, pRootB->right);
        } 
        else 
            return false;
    }

    public:
        bool HasSubtree(TreeNode* pRootA, TreeNode* pRootB)    {
            if (pRootA == NULL || pRootB == NULL) return false;
            return isSubtree(pRootA, pRootB) || HasSubtree(pRootA->left, pRootB) || HasSubtree(pRootA->right, pRootB);
        }
};
發佈了52 篇原創文章 · 獲贊 10 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章