题目:给定两颗二叉树,判断两颗二叉树是否相同(相同即两颗二叉树的结构以及节点的值相同)
算法:递归遍历
原理:递归遍历两颗二叉树X和Y,遍历X和Y时判断一下两棵树的结构(节点是否存在),以及节点值是否相同即可
/**
* 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 (null==p && null!=q) {
return false;
}
else if (null!=p && null==q) {
return false;
}
else if (null==p && null==q) {
return true;
}
else {
if (p.val != q.val) {
return false;
}
if (!isSameTree(p.left, q.left)) {
return false;
}
if (!isSameTree(p.right, q.right)) {
return false;
}
return true;
}
}
}