【牛客網】樹的子結構

  • 題目:
    輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構)

  • 代碼:

class Solution {
public:
    bool DoesTreeHaveTree2(TreeNode* pRoot1, TreeNode* pRoot2){
          if (pRoot2 == NULL)
               return true;
          if (pRoot1 == NULL)
               return false;
          if (pRoot1->val != pRoot2->val)
               return false;
           return DoesTreeHaveTree2(pRoot1->left, pRoot2->left) && DoesTreeHaveTree2(pRoot1->right, pRoot2->right);
    }
    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
    {
        bool result = false;
        if (pRoot1 != NULL && pRoot2 != NULL){
        if (pRoot1->val == pRoot2->val)
            result = DoesTreeHaveTree2(pRoot1, pRoot2);
        if (!result)
            result = HasSubtree(pRoot1->left, pRoot2);
        if (!result)
            result = HasSubtree(pRoot1->right, pRoot2);
        }
        return result;
    }//遞歸的思想
發佈了37 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章