| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
 
  
- For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
 
  
-     1
 
 -    / \
 
 -   2   2
 
 -  / \ / \
 
 - 3  4 4  3
 
 -  
 
  
- But the following [1,2,2,null,3,null,3] is not:
 
  
-     1
 
 -    / \
 
 -   2   2
 
 -    \   \
 
 -    3    3
 
 -  
 
  
- Note:
 
 - Bonus points if you could solve it both recursively and iteratively.
 
  复制代码 
- /**
 
 -  * Definition for a binary tree node.
 
 -  * public class TreeNode {
 
 -  *     int val;
 
 -  *     TreeNode left;
 
 -  *     TreeNode right;
 
 -  *     TreeNode(int x) { val = x; }
 
 -  * }
 
 -  */
 
 - class Solution {
 
 -     
 
 -     public boolean isSymmetric(TreeNode root) {
 
 -         if(root == null) return true;
 
 -         
 
 -         return helper(root.left, root. right) ;
 
 -     }
 
 -     
 
 -     public boolean helper(TreeNode left, TreeNode right){
 
 -         
 
 -         if(left == null && right == null) return true;
 
 -         
 
 -         if(left == null || right == null) return false;
 
 -         
 
 -         if(left.val != right.val)
 
 -             return false;
 
 -         
 
 -         return helper(left.left,right.right) && helper(left.right, right.left);
 
 -         
 
 -     }
 
 - }
 
  复制代码 |   
 
 
 
 |