【Leetcode 572.另一棵树的子树】【C语言】判断一棵树是否是另一棵树的子树

【Leetcode 572.另一棵树的子树】【C语言】判断一棵树是否是另一棵树的子树_第1张图片
【Leetcode 572.另一棵树的子树】【C语言】判断一棵树是否是另一棵树的子树_第2张图片
【Leetcode 572.另一棵树的子树】【C语言】判断一棵树是否是另一棵树的子树_第3张图片
【Leetcode 572.另一棵树的子树】【C语言】判断一棵树是否是另一棵树的子树_第4张图片

代码:

bool isSametree(struct TreeNode*root1,struct TreeNode*root2)
{
    if(root1==NULL&&root2==NULL)
    return true;
    if(root1==NULL||root2==NULL)
    return false;
    if(root1->val!=root2->val)
    return false;
    return isSametree(root1->left,root2->left)
    &&isSametree(root1->right,root2->right);
}
bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){
    if(root==NULL)
    return false;
    if(root->val==subRoot->val)
     {if(isSametree(root,subRoot))
     return true;}
     return isSubtree(root->left,subRoot)
     ||isSubtree(root->right,subRoot);
}

你可能感兴趣的:(leetcode,c语言,算法,开发语言,数据结构,笔记)