101. Symmetric Tree

来源:互联网 发布:php高级编程 pdf 编辑:程序博客网 时间:2024/06/05 16:56

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; } * } */public class Solution {    public boolean isSymmetric(TreeNode root) {    if(root==null){            return true;        }        return same(root.left,root.right);    }    public boolean same(TreeNode l,TreeNode r){       if(l==null&&r==null){           return true;       }else if(l==null&&r!=null){           return false;       }else if(l!=null&&r==null){           return  false;       }else {           if(l.val==r.val){               return same(l.left,r.right)&&same(l.right,r.left);           }else {               return false;           }       }    }}
原创粉丝点击