[LeetCode]Symmetric Tree

来源:互联网 发布:设计淘宝网店 编辑:程序博客网 时间:2024/06/05 23:42

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.

  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 isSimilar(root.left, root.right);    }    public boolean isSimilar(TreeNode r1,TreeNode r2){    if(r1==null&&r2==null) return true;    else if(r1==null||r2==null) return false;    else{    if(r1.val!=r2.val) return false;    else return isSimilar(r1.left, r2.right)&&isSimilar(r1.right, r2.left);    }    }}  


原创粉丝点击