用Java代码写一个判断两个二叉树是否相同
2015-04-05 18:54
513 查看
判断两个二叉树是否相同,我觉得应该从三个方面来判断:
1、若两个二叉树都是空树,则返回true,可认为两个二叉树相同;
2、若两个二叉树一个为空,一个不为空树,则两个二叉树不相同,返回false;
3、若两个二叉树都不为空树,则判断两个节点所指的值是否相同,若相同,则用递归的方法判断两个节点的左右节点是否相同,若相同返回true,否则返回false;
Java代码如下:
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution{
public boolean isSameTree(TreeNode p,TreeNode q){
if (p==null&&q==null){
return true;
}
else if (p==null||q==null){
return false;
}
if(p!=null&&q!=null){
if(p.val!=q.val){
return false;
}
else {
return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);
}
}
return false;
}
}
1、若两个二叉树都是空树,则返回true,可认为两个二叉树相同;
2、若两个二叉树一个为空,一个不为空树,则两个二叉树不相同,返回false;
3、若两个二叉树都不为空树,则判断两个节点所指的值是否相同,若相同,则用递归的方法判断两个节点的左右节点是否相同,若相同返回true,否则返回false;
Java代码如下:
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution{
public boolean isSameTree(TreeNode p,TreeNode q){
if (p==null&&q==null){
return true;
}
else if (p==null||q==null){
return false;
}
if(p!=null&&q!=null){
if(p.val!=q.val){
return false;
}
else {
return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);
}
}
return false;
}
}
相关文章推荐
- Java代码 给出一个二叉树和一个数,判断该二叉树是否存在一个从根节点到叶节点的和与给出的数相同
- java 判断两个对象是否为同一个对象实例代码
- Java判断两个二叉树是否相同
- java怎么判断两个Set 里的对象的值是否相同【两个set中的值是否相等】、java treeset和hashset如何判断元素是否相同【即对象是否完全相同;利用一个set去除重复元素】
- 判断两个二叉树是否相同
- java怎么判断两个Set 里的对象的值是否相同
- 判断两个二叉树是否相同
- 请教一个算法问题,有两个数组A,B,判断A中是否至少有一个元素和B中元素相同
- java 判断两个文件是否相同
- Java代码 判断一棵二叉树是否为对称的
- 判断一个数字中是否包含两个相同的字串
- 华为机试题-判断一个数字中是否包含两个相同的子串
- 1.4 写一个函数判断两个字符串是否使用相同的字符构成。
- Java判断两个路径对应的文件是否相同
- Java 判断两个文件是否相同的两种方法
- 判断一个点是否在三个点组成的三角形内 java 代码 面试经典
- LeetCode刷题之三:判断两个二叉树是否相同
- Java--判断两个文件是否相同
- java怎么判断两个Set 里的对象的值是否相同
- 2. 编写一个Java应用程序,用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、32