题目大意:给定两个二叉树,判定这两个二叉树是否相同。
理解:两个二叉树相同的条件:1)二叉树有相同的结构;2)相应节点的值相等。本人采取递归的方法来实现判别。
实现:
/**
* 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;
if(p == null || q == null) return false;
if(p.val != q.val) return false;
if(p.val == q.val) {
boolean res = isSameTree(p.left, q.left);
if(!res) return false;
boolean re = isSameTree(p.right, q.right);
if(!re) return false;
}
return true;
}
}