Symmetric Tree

Symmetric Tree_第1张图片

recursively

/** * 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;
        }
        else {
            return Symmetric(root.left, root.right);
        }
    }

    public boolean Symmetric(TreeNode t1, TreeNode t2) {
        if(t1 == null && t2 == null) return true;
        if((t1 == null) ^ (t2 == null)) return false;

        if(t1.val != t2.val){
            return false;
        }
        else {
            return Symmetric(t1.left, t2.right) && Symmetric(t1.right, t2.left);
        }
    }
}

你可能感兴趣的:(Symmetric Tree)