输入两颗二叉树a,b,判断b是不是a的子结构
答案:2 悬赏:80
解决时间 2021-02-12 14:07
- 提问者网友:温柔又任性
- 2021-02-11 17:19
输入两颗二叉树a,b,判断b是不是a的子结构
最佳答案
- 二级知识专家网友:ー何必说爱
- 2021-02-11 18:56
如果树中的节点的值不重复的话可以用如下代码,非常简洁:
bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
{
if (NULL == pRoot1)
{
return false;
}
if (NULL == pRoot2)
{
return true;
}
if (pRoot1->val == pRoot2->val)
{
return HasSubtree(pRoot1->left,pRoot2->left)&&HasSubtree(pRoot1->right,pRoot2->right);
}
else
{
return HasSubtree(pRoot1->left,pRoot2)||HasSubtree(pRoot1->right,pRoot2);
}
}
bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
{
if (NULL == pRoot1)
{
return false;
}
if (NULL == pRoot2)
{
return true;
}
if (pRoot1->val == pRoot2->val)
{
return HasSubtree(pRoot1->left,pRoot2->left)&&HasSubtree(pRoot1->right,pRoot2->right);
}
else
{
return HasSubtree(pRoot1->left,pRoot2)||HasSubtree(pRoot1->right,pRoot2);
}
}
全部回答
- 1楼网友:短发女王川岛琦
- 2021-02-11 20:24
写一个二叉树比较的函数,对a的每个子树和b做一次比较。用递归很容易实现。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯