本文共 1355 字,大约阅读时间需要 4 分钟。
判断子结构:
class Solution {public: bool solve(TreeNode* a, TreeNode* b){ if(b == NULL) return true; if(a == NULL) return false; if(a->val == b->val){ return solve(a->left,b->left) && solve(a->right,b->right); } return false; } bool judge(TreeNode* a,TreeNode* b){ if(a == NULL || b == NULL) return false; bool ans = false; if(a->val == b->val) ans = (ans || solve(a,b)); if(ans) return true; ans = (ans || judge(a->left,b)); ans = (ans || judge(a->right,b)); return ans; } bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) { return judge(pRoot1,pRoot2); }};
判断子树:
bool solve(TreeNode* a, TreeNode* b){ if(a == NULL && b == NULL) return true; if(a == NULL || b == NULL) return false; if(a->val == b->val){ return solve(a->left,b->left) && solve(a->right,b->right); } return false;}bool judge(TreeNode* a,TreeNode* b){ if(a == NULL || b == NULL) return false; bool ans = false; if(a->val == b->val) ans = (ans || solve(a,b)); if(ans) return true; ans = (ans || judge(a->left,b)); ans = (ans || judge(a->right,b)); return ans;}bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2){ return judge(pRoot1,pRoot2);}
转载地址:http://mfwji.baihongyu.com/