LeetCode【100. 相同的树】
看到这道题,第一思考是结构和节点完全相同
第一次,就没有思考null的情况
if(p.val == q.val && p.left.val == q.left.val && p.right.val == q.right.val)
{
return true;
}
else
return false;
这个就导致以下错误,就是空指针的错误
java.lang.NullPointerException
at line 12, Solution.isSameTree
at line 54, __DriverSolution__.__helper__
at line 81, __Driver__.main
然后修改的代码
if(p == null && q == null)
{
return true;
}
else if(p != null && q != null)
{
if(p.val == q.val && p.left.val == q.left.val && p.right.val == q.right.val)
{
return true;
}
return false;
}
else
return false;
然而,也出现了空指针的错误,仔细查看代码后,发现了问题所在,就是只考虑了p的null与q的null,不能保证p.left,q.left,p.right,q.right是否为空,
那么,他们判断是否为null,依然和p,q是否为null是类似的,那么在这里就可以利用递归。
采用isSameTree(p,q)这个函数,就可以采用isSameTree(p.left,q.left)和isSameTree(p.right,q.right),就可以避免null
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p == null && q == null)
{
return true;
}
else if(p != null && q != null)
{
if(p.val == q.val && isSameTree(p.left,q.left) && isSameTree(p.right,q.right))
{
return true;
}
return false;
}
else
return false;
}
}
LeetCode【100. 相同的树】的更多相关文章
- LeetCode 100. 相同的树(Same Tree) 2
100. 相同的树 100. Same Tree 题目描述 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 每日一算法2019/5 ...
- Java实现 LeetCode 100 相同的树
100. 相同的树 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [ ...
- LeetCode 100.相同的树(C++)
给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1 ...
- LeetCode 100——相同的树
1. 题目 2. 解答 针对两棵树的根节点,有下列四种情况: p 和 q 都为空,两棵树相同: p 不为空 q 为空,两棵树不相同: p 为空 q 不为空,两棵树不相同: p 和 q 都不为空,如果两 ...
- LeetCode 572. 另一个树的子树(Subtree of Another Tree) 40
572. 另一个树的子树 572. Subtree of Another Tree 题目描述 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树.s 的一个子树包括 ...
- LeetCode 100 及 101题
100. 相同的树 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [ ...
- LeetCode刷题总结-树篇(下)
本文讲解有关树的习题中子树问题和新概念定义问题,也是有关树习题的最后一篇总结.前两篇请参考: LeetCode刷题总结-树篇(上) LeetCode刷题总结-树篇(中) 本文共收录9道题,7道中等题, ...
- LeetCode刷题总结-树篇(中)
本篇接着<LeetCode刷题总结-树篇(上)>,讲解有关树的类型相关考点的习题,本期共收录17道题,1道简单题,10道中等题,6道困难题. 在LeetCode题库中,考察到的不同种类的树 ...
- [LeetCode] 100. Same Tree 相同树
Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...
- LeetCode 100. Same Tree (相同的树)
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...
随机推荐
- 2015-10-07 jQuery2
jQuery (2) 四. 过滤选择器 1. $("input[type='button']").val(“中国”) //所有设置type=button的input,其val ...
- Oracle 监听器日志配置与管理
十一假期间,某客户因为监听日志问题导致系统登录挂起,当时在返京的路上,因客户业务不允许中断,无奈之下,借了个本子帮客户做了紧急处理,今天恰好有空,在网上搜了下有关监听日志的内容,发现一个不错的帖子,内 ...
- Eclipse+Spring boot开发教程
一.安装 其实spring boot官方已经提供了用于开发spring boot的定制版eclipse(STS,Spring Tool Suite)直接下载使用即可,但考虑到可能有些小伙伴不想又多装个 ...
- gdb pretty printer for STL debug in Linux
Check your gcc version. If it is less than 4.7, you need use another printer.py file. Get the file f ...
- Nginx的使用(一)Nginx+IIS实现一个网站绑定多个https域名
使用nginx最初的目的是为了解决iis7下无法配置多个443端口的问题,iis7下不同的域名无法同时绑定443端口,据说iis8是可以的,但是iis8的话需要安装windows server2012 ...
- 如何发布自己的node模块
一.注册自己的npm账户 在 npm 官网 https://www.npmjs.org 申请一个账号,并且进行必要的验证,需要填写用户名.密码和邮箱.并且注册成功后会向邮箱发一封邮件,需要进行验证. ...
- JQ 关于each() 箭头函数报错的问题
- sticky footer
html: <div class="detail"> <div class="detail-wrapper"> <div clas ...
- 通过进程link路径(快捷方式路径)得到进程完整路径
程序中遇到的问题及解决方法: #error WINDOWS.H already included. MFC apps must not #include <windows.h>解决方法:把 ...
- 关于Excel导出实例(适合新手,比较详细)
需要源代码的可以加我微信好友gqljxg1514 1,首先配置依赖pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0&q ...