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

政务网站模版互联网医院网站建设

政务网站模版,互联网医院网站建设,站长之家 网站模板,吉他网站怎么做这个系列的文章将带大家一起刷题,并且总结思路 温馨提示:本篇文章里的练习题仅适合刚学完二叉树的小白使用 相同的树 思路 情况分析:第一种情况:两棵树都为空 → 返回true 第二种情况&am…

这个系列的文章将带大家一起刷题,并且总结思路

温馨提示:本篇文章里的练习题仅适合刚学完二叉树的小白使用

相同的树

思路

情况分析:第一种情况:两棵树都为空                         →               返回true

                  第二种情况:一棵树为空,另一棵树不为空→               返回false

                  第三种情况: 两棵树都不为空                     →              判断每个节点的数值是否相同

源代码

bool isSameTree(struct TreeNode* p, struct TreeNode* q) {

    if(q == NULL && p == NULL)

    return true;

    if(q == NULL || p == NULL)

    return false;

    if(p->val != q->val)

    return false;

    return isSameTree(q->left, p->left) && isSameTree(q->right, p->right);

}

变式题

思路上与第一题的一模一样,但不同的是这次需要遍历树的左右叶子,并且判断是否处在相反的位置

思路

情况分析:第一种情况:两棵树都为空                         →               返回true

                  第二种情况:一棵树为空,另一棵树不为空→               返回false

                  第三种情况: 两棵树都不为空                     →              判断每个节点的数值是否相同

源代码

bool _isSymmetric(struct TreeNode* p, struct TreeNode* q)

 {

    if(q == NULL && p == NULL)

    return true;

    if(q == NULL || p == NULL)

    return false;

    if( q->val != p->val)

    return false;

    return _isSymmetric(q->left, p->right) && _isSymmetric(q->right, p->left);

 }

bool isSymmetric(struct TreeNode* root) {

    return _isSymmetric(root->left, root->right);

}

另一棵树的子树

思路

另一棵树的子树

第二种情况: root为空时, 则没有子树可与还在等待比较的树进行比较,因此返回false

第三种情况:root不为空,则先比较根节点的值是否相等,比较完根的节点后,再比较叶子的节点的数值是否相等

源代码

bool isSameTree(struct TreeNode* p, struct TreeNode* q) {

    if(q == NULL && p == NULL)

    return true;

    if(q == NULL || p == NULL)

    return false;

    if(p->val != q->val)

    return false;

    return isSameTree(q->left, p->left) && isSameTree(q->right, p->right);

}

bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){

   if(root == NULL)

    return false;

    if(root->val == subRoot->val && isSameTree(root, subRoot))

    return true;

   return isSubtree(root->left, subRoot) || isSubtree(root->right,subRoot);

}

刷题总结

从本篇文章中的三道习题以及我自己的刷题中发现,类似于这种类型的题不管考察的是否为二叉树也好还是链表也好,我们都需要考虑它是否为空以及为空时是否可取

好的,本篇文章就先带大家刷到这里,还请各位观众老爷赏个三连,谢谢啦

http://www.yayakq.cn/news/753438/

相关文章:

  • 做食品那些网站好广州企业所得税
  • 成都人才网站建设wordpress 导入excel
  • 还有哪些网站做产品众筹南宁seo推广经验
  • 从零开始做网站四川成都网站制作公司
  • 苏州企业网站seo域客士营销型单页网站程
  • c 视频网站开发入门网站建设与运营的实训总结
  • 有哪些好的做h5的网站深圳西乡
  • 各大网站有哪些南京手机网站设计公司
  • 重庆市设计公司网站wordpress自动推送
  • 云岭建设集团的网站wordpress安装后怎么修改主题
  • 做网店好还是网站网站分析怎么写
  • 免费建英文网站wordpress首页新闻显示数量
  • ipad怎么制作网站阳泉做网站多少钱
  • 做购物网站的业务wordpress做的外贸网站6
  • 天津网站建设座机号重庆妇科医院在线咨询
  • 建设网站的目的饮食类梅州企业网站建设公司
  • 合肥网站建设合肥网站如何优化
  • 湖南信息网官方网站九度互联网站建设
  • 使用织梦系统建设网站教程网站建设中成本怎么描述
  • 兰州网站制作公司哪个好培训网站网站建设
  • 最新网站源码制作旅游景点介绍网页
  • 许昌市建设投资有限公司 网站做网站简单需要什么
  • app网站开发工具下载flash源码网站
  • 成都微信网站开发温州15000 做网站的工作
  • 上海网站建设怎么赚钱超市小程序怎么做
  • 济源市建设网站.net电商网站全站开发
  • 专做程序员招聘的网站工厂展厅效果图
  • 广州网站开发工程师商店商品管理系统
  • 游戏交易网站开发酷家乐网站做墙裙教程
  • 中国做外贸网站有哪些问题网站建设设计公司类网站织梦模板(带手机端)