LeetCode 572.另一棵树的子树 C写法
LeetCode 572.另一棵树的子树 C写法
思路🧐:
可以用上判断两棵树是否相同的方法,root的每个结点都去与subroot进行该方法的比较,如果有一轮比较成功就表示root包含subroot。
代码🔎:
bool isSameTree(struct TreeNode* root, struct TreeNode* subRoot) {if(root == NULL && subRoot == NULL)return true;if(root == NULL || subRoot == NULL)return false;if(root->val != subRoot->val)return false;return isSameTree(root->left,subRoot->left) &&isSameTree(root->right,subRoot->right); }bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){if(root == NULL) //当结点为空则返回falsereturn false;if(isSameTree(root,subRoot)) //进行相同比较return true;//递归,有一次返回true则包含subrootreturn isSubtree(root->left,subRoot) ||isSubtree(root->right,subRoot); }