zoukankan      html  css  js  c++  java
  • 37: Symmetric Tree

    /************************************************************************/
            /*       37:      Symmetric Tree                                        */
            /************************************************************************/
            /*
             * Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

    For example, this binary tree is symmetric:

        1
       /
      2   2
     / /
    3  4 4  3

    But the following is not:

        1
       /
      2   2
         
       3    3

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

             * */
            
            //判断二叉树是否是对称树(非递归写起来真是。。。)

      public boolean isSymmetric(TreeNode root)
            {
                if(root==null)
                {
                    return true;
                }
                return IsMirror(root.left,root.right);
            }
            
            
            private Boolean IsMirror(TreeNode nodeleft,TreeNode noderight)
            {
                if(nodeleft==null&&noderight==null)
                {
                    return true;
                }
                if(nodeleft==null||noderight==null)
                {
                    return false;
                }
                return nodeleft.val==noderight.val&&IsMirror(nodeleft.left, noderight.right)&&IsMirror(nodeleft.right, noderight.left);
            }

  • 相关阅读:
    【FIRST USE】第一次用git把代码上传到github
    [多线程学习笔记] 一个线程安全的队列
    C中宏展开问题
    C语言中的命名空间
    c语言中赋值语句的结果
    Python一些难以察觉的错误
    C语言中的内存压缩技术
    简述数据结构:二叉查找树
    指针与指针的引用、指针的指针
    C++ 中的virtual关键词
  • 原文地址:https://www.cnblogs.com/theonemars/p/4254133.html
Copyright © 2011-2022 走看看