Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
boolean flag = true;
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p==null && q!=null || q==null && p!=null){
return flag=false;
}else{
if(p != null && q != null){
if(p.val == q.val){
isSameTree(p.left , q.left);
isSameTree(p.right , q.right);
}
else{
return flag=false;
}
}
}
return flag;
}
}
总结:根据题意,首先我会想到循环遍历进行数值对比,满足2个条件,他们就不是一样的,第1个就是p为空,q为不为空(反之同理),第2个数值不同,我定义了一个全局变量flag,用来存储输出boolean值,默认为falg=true,即不满足上述2个条件,如果遇到一个满足,即flag=false。