1.same tree
/**
* 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;
return isSameTree(p.left, q.left)&&isSameTree(p.right, q.right);
}
}
2.symmetric-tree(mirror-tree)(对称树)
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public static boolean isSymmetric(TreeNode root) {
if(root==null)
return true;
return isMirror(root.left, root.right);
}
public static boolean isMirror(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;
return isMirror(p.left, q.right)&&isMirror(p.right, q.left);
}
}