给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/ \
2 2
/ \ / \
3 4 4 3
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1
/ \
2 2
\ \
3 3
1 class Solution { 2 public boolean isSymmetric(TreeNode root) { 3 // 递归法 4 return check(root,root); 5 } 6 public boolean check(TreeNode left,TreeNode right){ 7 if (left == null && right == null){ 8 return true; 9 } 10 if(left == null || right == null){ 11 return false; 12 } 13 return left.val==right.val && check(left.left,right.right) && check(left.right,right.left); 14 } 15 }
解题关键:
递归法,左右对称