美文网首页
101. 对称二叉树

101. 对称二叉树

作者: 梦想黑客 | 来源:发表于2020-03-03 17:21 被阅读0次

    题目描述

    给定一个二叉树,检查它是否是镜像对称的。

    例如,二叉树 [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
    

    说明:

    如果你可以运用递归和迭代两种方法解决这个问题,会很加分。

    解法

    /**
     * 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 isSymmetric(root.left,root.right);
        }
        
        private boolean isSymmetric(TreeNode node1,TreeNode node2){
            if(node1 == null && node2 == null) return true;
            if(node1 == null || node2 == null) return false;
            
            if(node1.val != node2.val) return false;
            return isSymmetric(node1.left,node2.right) && isSymmetric(node1.right,node2.left);
        }
    }
    

    相关文章

      网友评论

          本文标题:101. 对称二叉树

          本文链接:https://www.haomeiwen.com/subject/tuohlhtx.html