LintCode2016年8月8日算法比赛----等价二叉树

等价二叉树

题目描述

检查两棵二叉树是否等价。等价意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数据相等。

样例

1 1
/ \ /
2 2 and 2 2
/ /
4 4
这就是两棵等价的二叉树。

1 1
/ \ /
2 3 and 2 3
/
4 4

算法分析:

递归遍历两棵二叉树的所有节点,并且判断节点数据是否相同

Java算法解决:

/**
* Definition of TreeNode:
* public class TreeNode {
* public int val;
* public TreeNode left, right;
* public TreeNode(int val) {
* this.val = val;
* this.left = this.right = null;
* }
* }
/
public class Solution {
/
*
* @param a, b, the root of binary trees.
* @return true if they are identical, or false.
*/
public boolean isIdentical(TreeNode a, TreeNode b) {
// Write your code here
if(anull&&bnull){
return true;
}
else if(anull||bnull){
return false;
}
else{
if(a.val!=b.val){
return false;
}
else{
boolean result=isIdentical(a.left, b.left);
if(!result){
return result;
}
else{
result=isIdentical(a.right, b.right);
return result;
}
}
}
}
}

posted on 2016-08-22 15:49  HorseShoe2016  阅读(278)  评论(0)    收藏  举报