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); } }