zoukankan      html  css  js  c++  java
  • 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
    

    进阶:

    你可以运用递归和迭代两种方法解决这个问题吗?

    C#代码

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     public int val;
     *     public TreeNode left;
     *     public TreeNode right;
     *     public TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public bool IsSymmetric(TreeNode root) {
            return IsSymmetric(root,root); 
        }
        public bool IsSymmetric(TreeNode p,TreeNode q) {
             /*递归边界1:两树均为空时返回true。*/
            if(p == null && q == null) return true;
    
            /*递归边界2:两树中任一为空(完整判断:p == null && q != null || p != null && q == null,但由于递归边界1,可以简化如下)。*/
            if(p == null || q == null) return false;
    
            /*递归边界3:左右两树节点值不相等,必定不对称。*/
            if(p.val != q.val) return false;
    
            /*递归调用,判断左树的右子树与右树的左子树、左树的左子树与右树的右子树的对称性,任一条件不满足返回false。*/
            return IsSymmetric(p.right, q.left) && IsSymmetric(p.left, q.right);
        }
    }
    
  • 相关阅读:
    [BZOJ3195][Jxoi2012]奇怪的道路
    [codeforces696B]Puzzles
    [codeforces464D]World of Darkraft
    [COGS1000]伊吹萃香 最短路
    [BZOJ4653][NOI2016]区间 贪心+线段树
    [BZOJ4540][HNOI2016]序列 莫队
    [BZOJ4870][Shoi2017]组合数问题 dp+矩阵乘
    Loj 2005 相关分析
    Loj 114 k大异或和
    bzoj 2212 Tree Rotations
  • 原文地址:https://www.cnblogs.com/fuxuyang/p/14242570.html
Copyright © 2011-2022 走看看