劍指offer------書的子結構
阿新 • • 發佈:2018-12-12
題目:
思路:
程式碼:
struct TreeNode { int val; TreeNode *left; TreeNode *right; } class Solution { public: bool HasSubtree(TreeNode *pRoot1,TreeNode *pRoot2) { bool result = fasle; if(pRoot1!=NULL && pRoot2!=NULL) { if(pRoot1->val==pRoot2->val) result = DoseTree1HasTree2(pRoot1,pRoot2); } if(!result) { result=HasSubtree(pRoot1-left,pRoot2); } if(!result) { result=HasSubtree(pRoot1->right,pRoot2); } return result; } private: bool DoseTree1HasTree2(TreeNode* pRoot1,TreeNode*pRoot2) { if(pRoot2==NULL) return true; if(pRoot1==NULL) return fasle; if(pRoot1->val != pRoot2->val) return fasle; return DoseTree1HasTree2(pRoot1->left,pRoot2->left) && DoseTree1HasTree2(pRoot1->right,pRoot2->right); } };