目录
- 1.解题思路
- 2.代码实现
1.解题思路
首先先要有一个判断根据两个根节点判断两个树是否相等的接口,然后再利用递归,在需要被比较的树里进行前序遍历来得出是否有子树.
2.代码实现
bool issame(struct TreeNode* root, struct TreeNode* subRoot)
{if(root==NULL&&subRoot==NULL)return true;if(root!=NULL&&subRoot==NULL)return false;if(root==NULL&&subRoot!=NULL)return false;if(root->val!=subRoot->val)return false;int x1=issame(root->left,subRoot->left);int x2=issame(root->right,subRoot->right);if(x1&&x2)return true;return false;
}
bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot)
{if(subRoot==NULL)return false;if(root==NULL)return false;if(issame(root, subRoot))return true;return (isSubtree(root->left, subRoot)||isSubtree(root->right, subRoot));}
结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!