zoukankan      html  css  js  c++  java
  • 101. Symmetric对称 Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

    For example, this binary tree [1,2,2,3,4,4,3] is symmetric:

        1
       / 
      2   2
     /  / 
    3  4 4  3
    

    But the following [1,2,2,null,3,null,3] is not:

        1
       / 
      2   2
          
       3    3
    

    Note:
    Bonus points if you could solve it both recursively and iteratively. 

     
    需要左右对称,解题思路和Same Tree类似。
    如果拿掉root结点的话,逻辑其实相当于是比较root.left和root.right是否same tree类似的逻辑。只是需要把之前的left.left和right.right比较,left.right和right.left进行比较。
     
     public bool IsSymmetric(TreeNode root)
            {
                return IsMirror(root?.left, root?.right);
            }
    
            public bool IsMirror(TreeNode left, TreeNode right)
            {
                bool flag;
                if (left == null && right == null)
                {
                    flag = true;
                }
                else if (left == null || right == null)
                {
                    flag = false;
                }
                else
                {
                    if (left.val == right.val)
                    {
                        flag = IsMirror(left.left, right.right) && IsMirror(left.right, right.left);
                    }
                    else
                    {
                        flag = false;
                    }
                }
    
                return flag;
            }
     
     
  • 相关阅读:
    OO第四单元总结
    OO第三单元总结
    OO第二单元作业总结
    OO第一次总结
    OO第四单元总结
    OO第三单元总结
    OO第二单元总结
    OO第一单元总结
    使用pushplus+python实现亚马逊到货消息推送微信
    OO第四次博客作业
  • 原文地址:https://www.cnblogs.com/chucklu/p/10551576.html
Copyright © 2011-2022 走看看