leetcode_101対称ツリー


問題解


二叉木を指定し、ミラー対称であるかどうかを確認します.
例えば、二叉木[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

問題:

class Solution {
    public boolean isSymmetric(TreeNode root) {

        if(root == null){
            return true;
        }

       return symmetric(root.left, root.right);

    }

    private boolean symmetric(TreeNode p, TreeNode q){
        if(p== null && q == null){
            return true;
        } 
        if( p == null || q== null){
            return false;
        }
        if(p.val != q.val){
            return false;
        }
        return symmetric(p.left, q.right) && symmetric(p.right,q.left);
    }