LeetCode算法题-Same Tree(Java实现)
这是悦乐书的第162次更新,第164篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第21题(顺位题号是100)。给定两个二叉树,编写一个函数来检查它们是否相同。如果两个二叉树在结构上相同并且节点具有相同的值,则认为它们是相的。例如:
输入: 1 1
/ \ / \
2 3 2 3
[1,2,3],[1,2,3]
输出:true
输入:1 1
/ \
2 2
[1,2],[1,null,2]
输出:false
本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。
02 分析与解题
如果两个二叉树相同,那么两个二叉树的节点值肯定都要相同。从根节点一直到最后一个子节点,出现一个不相同的值,那么两个二叉树就不是相同的。当一个二叉树从根节点、左子节点、右子节点依次向下延伸的时候,每次获取到他们的值,然后再进行比较,如果相同,则继续找下一点节点进行比较,直到所有节点比较完。
每次进入下一个循环判断的时候,当前节点都是一个新的二叉树,可能是根节点,也可能是拥有子节点,所以我们可以借助递归的方法来解题。
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null || q == null) {
return p == q;
}
boolean f = p.val == q.val;
boolean f2 = isSameTree(p.left, q.left);
boolean f3 = isSameTree(p.right, q.right);
return f && f2 && f3;
}
03 小结
以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!
LeetCode算法题-Same Tree(Java实现)的更多相关文章
- LeetCode算法题-Symmetric Tree(Java实现)
这是悦乐书的第163次更新,第165篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第22题(顺位题号是101).给定二叉树,检查它是否是自身的镜像(即,围绕其中心对称). ...
- LeetCode算法题-N-ary Tree Postorder Traversal(Java实现)
这是悦乐书的第269次更新,第283篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第136题(顺位题号是590).给定一个n-ary树,返回其节点值的后序遍历.例如,给定 ...
- LeetCode算法题-N-ary Tree Preorder Traversal(Java实现)
这是悦乐书的第268次更新,第282篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第135题(顺位题号是589).给定一个n-ary树,返回其节点值的前序遍历.例如,给定 ...
- LeetCode算法题-Binary Tree Tilt(Java实现)
这是悦乐书的第263次更新,第276篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第130题(顺位题号是563).给定二叉树,返回整棵树的倾斜度.树节点的倾斜被定义为所有 ...
- LeetCode算法题-Quad Tree Intersection(Java实现)
这是悦乐书的第260次更新,第273篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第127题(顺位题号是558).四叉树是树数据,其中每个内部节点恰好有四个子节点:top ...
- LeetCode算法题-N-ary Tree Level Order Traversal(Java实现)
这是悦乐书的第225次更新,第238篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第92题(顺位题号是429).给定n-ary树,返回其节点值的级别顺序遍历.(即,从左到 ...
- LeetCode算法题-Binary Tree Paths(Java实现-3种解法)
这是悦乐书的第199次更新,第206篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第62题(顺位题号是257).给定二叉树,返回所有根到叶路径.例如: 输入: 1 / \ ...
- LeetCode算法题-Binary Tree Level Order Traversal II(Java实现)
这是悦乐书的第165次更新,第167篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第24题(顺位题号是107).给定二叉树,返回其节点值的自下而上级别顺序遍历(即从左到右 ...
- LeetCode算法题-Heaters(Java实现)
这是悦乐书的第239次更新,第252篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第106题(顺位题号是475).冬天来了!您在比赛期间的第一份工作是设计一个固定温暖半径 ...
随机推荐
- Perl包相关
名称冲突问题 假如在sum2.pm中使用require导入了一个代码文件sum1.pm: #!/usr/bin/env perl use strict; use warnings; use 5.010 ...
- [JavaScript] 前端模块编程实现
前端模块化 前端早期写代码都是全局变量满天飞,这种情况会造成全局命名空间污染,变量冲突等问题 var a = 1; var b = 2; function c(){} function d(){} 后 ...
- C#字符串。
string类型不能被继承,它是密封类,sealed. 一.字符串的特性. 1.不可变性. class Program { static void Main(string[] args) { stri ...
- 1.shell学习之常用语句
本章学习内容: 1.常见符号 2.命令分隔符-分号";" 3.双分号 ";;" 4. '单引号和"双引号 5.`反引号和$() 6.${}和$ 7.冒 ...
- mybatis_11关联查询_多对多
一对一:模型里面有模型 一对多:模型里面有集合 多对多:集合里面有集合 映射思路 pojo类设计思路 v 将用户信息映射到user中. v 在user类中添加订单列表属性List<Ord ...
- mybatis_08 mybatis与hibernate的区别
这个问题常常被面试官当做面试题 mybatis与hibernate喜忧参半,各有特点 Mybatis技术特点: 好处: 1. 通过直接编写SQL语句,可以直接对SQL进行性能的优化: 2. 学习门 ...
- python使用gevent实现并发下载器
并发下载原理 import gevent from gevent import monkey import urllib.request monkey.patch_all() def my_downl ...
- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/CanUnbuffer
在执行spark on hive 的时候在 sql.show()处报错 : Exception in thread "main" java.lang.NoClassDefFoun ...
- 小程序 lazy-load 不生效的问题
最近在开发家里喵喵的小程序(娱乐),本想抽一小部分时间做个懒加载.看了小程序官网 API,给 image 标签加上 lazy-load 就能实现懒加载.但从微信开发者工具看,似乎并没有生效.搜了一下, ...
- Oracle11g: simple sql script examples
---https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8003.htm drop user geovin; drop ...