题目分析:[[EVD]] - 剑指 Offer 26. 树的子结构
https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/
简单描述:
限制🚫
- 0 <= 节点个数 <= 10000
- 空树不是任意一个树的子结构
示例:
解题思路:
思路:
- #DFS 先序遍历
- 在A树中找到B树的root,同时开始DFS先序遍历判断是否相同
效率:
- 时间复杂度

- 空间复杂度

代码:
class Solution
{
private:
bool dfs(TreeNode *A, TreeNode *B)
{
if (B == NULL) //判断终止条件,子树B遍历完成
return true;
if (A == NULL)
return false;
return A->val == B->val && dfs(A->left, B->left) && dfs(A->right, B->right);
}
public:
/*在A树中找到B树的root,同时开始DFS先序遍历*/
bool isSubStructure(TreeNode *A, TreeNode *B)
{
if (A == NULL || B == NULL)
return false;
return dfs(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B);
}
};