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

网站建设及推广/南昌seo网站推广

网站建设及推广,南昌seo网站推广,pageadmin系统,做网站的软件 简单易学给两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 如下面的两颗二叉树:结构相同,而且对应节点的值是相同的 如下面的二叉树&am…

给两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

如下面的两颗二叉树:结构相同,而且对应节点的值是相同的

 如下面的二叉树,结构不同,所以不能算为是相同的二叉树

再比如下面的二叉树,虽然结构相等,但是值不相等,也不能算为相同的二叉树

 详细题解

一、基于递归的解决方法

递归函数

public boolean isSameTree(TreeNode p, TreeNode q) {}

终止条件

(1) p == null && q == null 时,p代表的树和q代表的树是一颗空树,自然是相同的树

(2) p == null || q == null 时,表示树的结构不一样,自然不是相同的树

(3) p.val != q.val时,表示树的结构一样,但是对于的值不相等,不是相同的树

状态转换方程

p代表的树和q代表的树相同,可以转换为 p 与 q相同,同时p.left 代表的树 和 q.left 代表的树相同,同时 p.right 代表的树 和 q.right 代表的树相同。

经过上面的分析,其实代码很好写出来,最终的代码如下:

public boolean isSameTree(TreeNode p, TreeNode q) {// p 和 q 代表的树都是空树if(p == null && q == null) return true;// p 和 q 代表的树结构不相同,或者是值不相等if(p == null || q == null || p.val != q.val) return false;// 需同时满足p.left 和 q.left 相同,同时p.right 和 q.right 相同return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);}

二、基于队列的解决方案

其实可以对整颗树执行遍历,按照同样的结构进行遍历,对遍历到的每一个节点都判断是否相等即可,无论采用前序遍历或者是中序遍历或者是后续遍历都是可以的,代码如下:

public boolean isSameTree(TreeNode p, TreeNode q) {
//定义两个队列Queue<TreeNode> queue_p = new LinkedList<>();queue_p.add(p);Queue<TreeNode> queue_q = new LinkedList<>();queue_q.add(q);while (!queue_p.isEmpty() || !queue_q.isEmpty()) {TreeNode pNode = queue_p.poll();TreeNode qNode = queue_q.poll();if (pNode == null && qNode == null) continue;if (pNode == null || qNode == null || pNode.val != qNode.val) return false;queue_p.add(pNode.left);queue_q.add(qNode.left);queue_p.add(pNode.right);queue_q.add(qNode.right);}return true;}

http://www.lbrq.cn/news/1444069.html

相关文章:

  • 天猫是不是b2b电子商务网站/哈尔滨百度关键词优化
  • 做网站一定要用ps吗/软文例文 经典软文范例
  • 网站建设视频百度网盘/宁波网络营销怎么做
  • 网站受众群体/长沙seo免费诊断
  • 广昌网站建设/谷歌官方网站首页
  • 济宁专业网站建设/西安百度seo推广
  • 国内bi软件排名/武汉seo网站排名优化公司
  • 阿里云服务器做网站/龙岗网站制作
  • 聊城网站建设:推广聊城博达/企业品牌推广
  • 做网站视频手机/百度推广哪种效果好
  • 软件测试能干一辈子吗/武汉seo优化服务
  • seo自学教程/广州seo运营
  • 长沙网站开发方案/西安百度快照优化
  • 为什么网站建设要将access数据库文件变成asa/搜索引擎优化作业
  • 拓网手机版网站管理系统/网络搭建的基本流程
  • iview做的网站/怎么在百度上做推广
  • 丽水网站建设报价/汕头seo快速排名
  • 电商网站建设包括哪些内容/seo常用工具网站
  • 杭州城乡建设委员会的网站/怎么在百度制作自己的网站
  • 吉林手机版建站系统价格/杭州网站建设 seo
  • 网站域名解释怎么做/石家庄seo排名外包
  • 优化合作平台/seo咨询邵阳
  • 起名网站是怎么做的/天津百度关键词排名
  • 代理做减肥网站/百度seo关键词排名查询
  • 深圳做网站制作/网站查询域名入口
  • 南昌企业网站设计/全网营销推广公司
  • 成都网站建设十强企业/关键词在线查询
  • 网站开发框架具体使用方法/淘宝关键词指数查询
  • 深圳网站开发专业团队/石家庄网络营销
  • 深圳的建站公司/自己开网站怎么开
  • 一起来聊聊GPT-5
  • MSE ZooKeeper:Flink高可用架构的企业级选择
  • Python day40
  • MVCC和日志
  • 分布微服务电商订单系统Rust编码开发[上]
  • Python自动化测试断言详细实战代码