美文网首页
LeetCode-101-对称二叉树

LeetCode-101-对称二叉树

作者: 蒋斌文 | 来源:发表于2021-06-04 10:21 被阅读0次

    LeetCode-101-对称二叉树

    101. 对称二叉树

    难度简单1407收藏分享切换为英文接收动态反馈

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

    例如,二叉树 [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) {
            return isMirror(root, root);
        }
    
        // 一棵树是原始树  head1
        // 另一棵是翻面树  head2
        public static boolean isMirror(TreeNode head1, TreeNode head2) {
            if (head1 == null && head2 == null) {
                return true;
            }
            if (head1 != null && head2 != null) {
                return head1.val == head2.val 
                        && isMirror(head1.left, head2.right) 
                        && isMirror(head1.right, head2.left);
            }
            // 一个为空,一个不为空  false
            return false;
        }
    }
    
    image-20210604101859572

    相关文章

      网友评论

          本文标题:LeetCode-101-对称二叉树

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