问题:
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 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 false;
if (q==null && p!=null) return false;
if (p==null && q==null) return true;
if (p.val != q.val) return false; //一定要把为null的情况都考虑过了,才能用p.val,否则可能出现空指针异常
boolean leftresult = isSameTree(p.left,q.left);
boolean rightresult = isSameTree(p.right,q.right);
return leftresult && rightresult;
}
}