首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用伪代码来比较两棵树?

如何使用伪代码来比较两棵树?

提问于 2018-05-10 23:30:28
回答 2关注 0查看 294

举个例子,假设我有两棵树:一个是文件夹结构,另一个是内存中该文件夹结构的“模型”。我希望比较这两棵树,并生成一棵树中存在的节点列表,而不是另一棵 - 反之亦然。

有一个公认的算法来处理这个问题吗?

回答 2

coolawen

回答已采纳

发布于 2018-05-11 08:04:58

本质上,你只是想做一个遍历。在哪里“visiting”一个节点意味着检查一个版本但不是另一个版本的孩子。

更确切地说:从根开始

。在每个节点上,获取节点的两个版本中的每一个中的一组项目。两组的对称差异包含一个项目,但不包含其他项目。输出这些。交叉点包含两者共有的项目。对于交叉点中的每个项目(我假设你不打算深入查看一棵树中缺少的项目),请在该节点上递归调用“visit”以检查其内容。

诸葛白云

发布于 2018-05-11 08:41:37

代码语言:txt
AI代码解释
复制
public boolean compareTrees(TreeNode root1, TreeNode root2) {
  if ((root1 == null && root2 != null) || 
      (root1 != null && root2 == null)) {
    return false;
  }

  if (root1 == null && root2 == null) {
    return true;
  }

  if (root1.data != root2.data) {
    return false;
  }

  return compareTrees(root1.left, root2.left) && 
    compareTrees(root1.right, root2.right);
}
和开发者交流更多问题细节吧,去 写回答
相关文章
如何使用 Set 来提高代码的性能
我确信有很多开发人员坚持使用基本的全局对象:数字,字符串,对象,数组和布尔值。对于许多用例,这些都是需要的。但是如果想让你的代码尽可能快速和可扩展,那么这些基本类型并不总是足够好。
coder_koala
2019/08/28
1.3K0
如何使用 Set 来提高代码的性能
我确信有很多开发人员坚持使用基本的全局对象:数字,字符串,对象,数组和布尔值。对于许多用例,这些都是需要的。 但是如果想让你的代码尽可能快速和可扩展,那么这些基本类型并不总是足够好。
前端小智@大迁世界
2019/07/10
1.8K0
如何使用 Set 来提高代码的性能
伪代码规范
在伪代码中,每一条指令占一行(else if 例外),指令后不跟任何符号 书写上的缩进表示程序中的分支结构;同一模块中的语句具有相同的缩进量,通常每个算法开始时都要描述它的输入和输出,而且算法中的每一行都给编上行号,在解释算法的过程中会经常使用算法步骤中的行号来指代算法的步骤。
Twcat_tree
2022/11/30
9870
如何不使用tsc编译来执行TypeScript代码
看了光哥的文章,自己写了两遍找了找感觉,很神奇,光哥的文章地址:手写一个 ts-node 来深入理解它的原理
前端小鑫同学
2022/12/26
1.1K0
如何不使用tsc编译来执行TypeScript代码
如何使用 Git 和 GitHub 来管理自己的代码
    点击右上角加号箭头,在弹出的菜单中选择 "New repository" 选项进行仓库配置。
herve
2018/08/22
1.7K0
如何使用 Git 和 GitHub 来管理自己的代码
timeit python_如何使用timeit来分析Python代码
通过设计,Python将便利性,可读性和易用性置于性能之上。 但这并不意味着您应该适应缓慢的Python代码。 您可能需要采取一些措施来加快速度。
用户7886150
2020/12/23
1K0
计数器、滑动窗口、漏桶、令牌算法比较和伪代码实现
计数器是限流里最简单的,简单来说,比如 我限制1分钟内 请求数最多为60个! 当此刻 2018-02-27 16:23:00 到 2018-02-27 16:24:00 时间内,请求最多只能是60个!到了2018-02-27 16:24:00,把计数器归零! 周而复始!
用户2825413
2020/06/09
2.8K0
计数器、滑动窗口、漏桶、令牌算法比较和伪代码实现
如何使用CSS伪类选择器
原文链接:https://www.sitepoint.com/css-is-where-has-pseudo-class-selectors/[1]
chuckQu
2022/09/20
2.3K0
如何使用CSS伪类选择器
如何在Ubuntu 16.04上使用SonarQube来确保代码质量
代码质量是特定代码片段的有用性和可维护性的近似值。质量代码将使维护和扩展应用程序的任务变得更加容易。它有助于确保在将来进行必要的更改时引入更少的漏洞。
穿鞋跑得快
2018/08/13
1.8K0
学会写伪代码
伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(C, Java, Pascal)实现。因此,伪代码必须结构清晰,代码简单,可读性好,并且类似自然语言。
自学气象人
2023/06/21
1.9K0
学会写伪代码
使用Git来管理源代码
  软件开发过程中一个重要的产出就是代码,软件的编码过程一般是由一个团队共同完成,它是一个并行活动,为了保证代码在多人开发中能够顺利完成,我们需要使用代码版本控制工具来对代码进行统一存储,并追踪每一份代码的历史以便于对代码的更改进行追溯,另外一些版本控制工具还提供了冲突合并等高级功能来协调多人对同一代码文件修改。所以版本控制工具可以看做整个编码工作的基础,如果没有版本控制来统一代码库,那么对于复杂且参与人数较多的项目是难以完成的,同时如果没有统一的代码库基础,那么如持续集成、发布等工作将无法开展。
星哥玩云
2022/07/24
1.5K0
使用Git来管理源代码
使用GrumPHP来纠正代码“毛病”
嗨,我是CrazyCodes,小时候做错事,长辈有没有训斥过你呢?今天让我们看看PHP的监护者,愤怒的老头- – grumphp
CrazyCodes
2019/11/07
1K0
使用GrumPHP来纠正代码“毛病”
vivado使用vscode来编辑代码
自带的自动补全不但没有什么用,非常的不智能(文明用语),还会补错,严重影响使用体验。那么,怎么用vscode来敲代码呢?
灯珑LoGin
2022/10/31
2.3K0
vivado使用vscode来编辑代码
如何使用TFsec来对你的Terraform代码进行安全扫描
TFsec是一个专门针对Terraform代码的安全扫描工具,该工具能够对Terraform模板执行静态扫描分析,并检查出潜在的安全问题,当前版本的TFsec支持Terraform v0.12+版本。
FB客服
2021/01/25
1.9K0
如何使用TFsec来对你的Terraform代码进行安全扫描
归档 | 如何使用 Github Gist 来实现代码块高亮自由
在 Hexo 的主题里,代码块的高亮是有很多的,但是,有些主题的代码块高亮,可能并不是你想要的,或者说,你想要的代码块高亮,可能并不在这个主题里。
Zkeq
2023/01/30
1.8K0
【说站】css中a标签伪类如何使用
1、书写顺序必须是访问前link,访问后visited,鼠标移动hover,鼠标点击active。
很酷的站长
2022/11/24
1.3K0
LaTeX伪代码编辑模板
LaTeX(LATEX,音译“拉泰赫”)是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。
里克贝斯
2021/05/21
2.7K0
LaTeX伪代码编辑模板
【说站】python比较运算如何使用
1、除数值操作外,整数型和浮点型还可以进行比较操作,即比较两个数值的大小。比较结果是布尔值。
很酷的站长
2022/11/23
5940
【说站】python比较运算如何使用
LaTeX伪代码写法总结
一般会接触到的包有algorithm、algorithmic、algorithmicx、algorithm2e这四种包。
全栈程序员站长
2022/11/17
11.7K0
LaTeX伪代码写法总结
使用SourceInsight来查看OpenJDK源代码
由于OpenJDK的目录书结构和OracleJDK目录树结构有所区别,所以对于新手而言查看开源的JDK类源码有所难度,所以本文就来介绍一下如何利用OpenJDK源代码。
Fisherman渔夫
2020/02/18
2.3K0

相似问题

如何配置伪静态模块?

0257

seleium使用时遇到伪元素::before=%0?

0104

使用建站主机的话,WordPress的伪静态如何解决?

61.1K

建站主机伪静态?

3393

Nginx伪静态的设置?

2972
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
平安资管 | 架构师擅长4个领域
擅长3个领域
擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档