原题链接:剑指 Offer 26. 树的子结构

solution:
代码主要分为两步:
① 通过dfs判断B是否是以A为根节点的子树
② 通过isSubstructure函数对每个A中的节点进行遍历
- class Solution {
- public:
- bool isSubStructure(TreeNode* A, TreeNode* B) {
- if(B == NULL || A == NULL) return false;
- return dfs(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B);
- }
-
- bool dfs(TreeNode *A, TreeNode *B) {
- if(B == NULL)
- return true;
- if(A == NULL || A->val != B->val)
- return false;
- return dfs(A->left, B->left) && dfs(A->right, B->right);
- }
- };