当前位置: 首页 > news >正文

网站测试方案网站关键词优化怎么弄

网站测试方案,网站关键词优化怎么弄,wordpress 自定义样式,app制作团队题目 来源:JZ26 树的子结构 描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下&#xff…

题目

来源:JZ26 树的子结构
描述
输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构)
假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看出B是A的子结构
在这里插入图片描述

数据范围:
0 <= A的节点个数 <= 10000
0 <= B的节点个数 <= 10000
示例1
输入:
{8,8,7,9,2,#,#,#,#,4,7},{8,9,2}
返回值:
true
示例2
输入:
{1,2,3,4,5},{2,4}
返回值:
true
示例3
输入:
{1,2,3},{3,1}
返回值:
false

解析

官方题解讲得一塌糊涂,关键概念没解释就算了,代码逻辑还非常混乱。这题的难度应该算较难而不是中等,因为有个关键点很难想到。假设两棵树分别为A,B,B为子树,则B为A的子树有如下三种情况:
1.B和A的根节点相同,B为A的子树。
2.B和A的根节点不同,B为A的左子树的子树。
3.B和A的根节点不同,B为A的右子树的子树。
显然,这三种情况都需要递归,但因为第一种情况和后两种是有本质区别的,所以第一种情况就需要单独写一个函数来判断,假设为IsSubtree。由于题目规定空树不是任意树的子树,所以HasSubtree开头就要排除B为空的情况,则这会引入一个关键点:IsSubtree中传入的B树的节点如果为空,则当前的IsSubtree的递归层数至少是两层,该B树节点不可能在第一层,而且前几层一定都是匹配成功的,所以一定要返回true。 下面举例说明:
在这里插入图片描述

显然,当递归层中的B树节点为空时,前几层的节点是匹配成功的,所以要返回true。图中总共要处理两次B树节点为空的情况,两次都要返回true,B树才能正确匹配A树。这点确实是比较难的,这点想不到,这题就不可能做对。
关键点解决了,IsSubtree的算法就不难写了:
1.判断B树节点是否空,若空则返回true。
2.判断A树节点是否为空,若空则返回false。
3.此时A树节点和B树节点都不空,判断它们的值是否相等,若不相等则返回false。
4.此时A树节点和B树节点都不空且相等,则递归判断它们的左右子树是否也都相等。
IsSubtree的实现如下:

bool IsSubtree(TreeNode* pRoot1, TreeNode* pRoot2) {if (!pRoot2 ) return true;if (!pRoot1 || pRoot1->val != pRoot2->val)return false;return IsSubtree(pRoot1->left, pRoot2->left) &&IsSubtree(pRoot1->right, pRoot2->right);
}

这个函数是本题的核心,写对了,后面就很简单了:假设主函数为HasSubtree,则算法如下:
1.判断B树或A树的节点是否空,空则返回false(题目规定空树不是任意树的子树)。
2.调用IsSubtree,判断B和A的根节点是否相同且B是否为A的子树,如果是则返回true。
3.此时B和A的根节点不同,递归判断B是否为A的左(右)子树的子树。
完整代码如下:

bool IsSubtree(TreeNode* pRoot1, TreeNode* pRoot2) {if (!pRoot2 ) return true;if (!pRoot1 || pRoot1->val != pRoot2->val)return false;return IsSubtree(pRoot1->left, pRoot2->left) &&IsSubtree(pRoot1->right, pRoot2->right);
}
bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) {if (!pRoot1 || !pRoot2)return false;return IsSubtree(pRoot1, pRoot2) || HasSubtree(pRoot1->left, pRoot2)|| HasSubtree(pRoot1->right, pRoot2)  ;
}
http://www.hengruixuexiao.com/news/5980.html

相关文章:

  • 十个app制作网站厦门网站设计公司
  • 中国城乡建设结合部网站搜索推广营销
  • 男科医院网站建设公司天津seo排名收费
  • WordPress主题和插件不兼容专业的seo排名优化
  • 杭州做网站怎么收费多少seo是网络优化吗
  • 长沙做网站找谁亚马逊关键词搜索器
  • 如何拥有自己的网站域名现在最火的推广平台
  • 2017优秀网站设计如何统计网站访问量
  • 陕西网站制作公司排名做推广怎么赚钱
  • 武汉p2p网站建设价格营销战略
  • 网站正在建设中 色凡科网站登录入口
  • 苏州做网站需要多少钱上海百度推广客服电话
  • 网站流量跟钱的关系网络推广的方式有哪些
  • 东莞中赢网站建设公司怎么样买卖链接网
  • 小程序开发教程免费郑州百度搜索优化
  • 一个类引用另一个类的方法上海网站排名seo公司
  • 衡水网站制作公司哪家专业做一个企业网站大概需要多少钱
  • 国家城乡建设部网站友链交易平台
  • 灰色系网站湘潭营销型网站建设
  • 视频分销网站建设深圳谷歌优化seo
  • 如何让搜索引擎不收录网站模板建站难吗
  • 龙华网站建设价格百度竞价推广开户
  • 什么是网站程序黄石市seo关键词优化怎么做
  • 简单的做图网站国际重大新闻事件10条
  • 做网站需要用什麼服务器他达拉非片多少钱一盒
  • 注册网站填写不了地区seo实战密码在线阅读
  • 网站建设的技术风险分析与规避刷seo关键词排名软件
  • 怎样做知道网站关键词热度查询工具
  • 网站建设公司中2023b站推广大全
  • 做网站niche少女长尾关键词挖掘