概述
// 面试题26:树的子结构
// 题目:输入两棵二叉树A和B,判断B是不是A的子结构。
static bool is_subtree(const std::shared_ptr<node_bt<int>>& root1,
const std::shared_ptr<node_bt<int>>& root2)
{
if(root1==nullptr || root2 == nullptr)
{
return false;
}
bool result = false;
if(root1->data == root2->data)
{
result = _is_subtree(root1, root2);
}
if(!result)
{
result = is_subtree(root1->left, root2);
}
if(!result)
{
result = is_subtree(root1->right, root2);
}
return result;
}
static bool _is_subtree(const std::shared_ptr<node_bt<int>>& root1,
const std::shared_ptr<node_bt<int>>& root2)
{
if(root2 == nullptr)
return true;
if(root1 == nullptr)
return false;
if(root1->data != root2->data)
return false;
return _is_subtree(root1->left, root2->left) &&
_is_subtree(root1->right, root2->right);
}
最后
以上就是要减肥汉堡为你收集整理的树的子结构的全部内容,希望文章能够帮你解决树的子结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复