• 【leetcode】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

    思路:判断树是否是对称的 递归判断即可

    class Solution {
    public:
        bool isSymmetric(TreeNode* root) {
            if(NULL == root)   return true;
    
            TreeNode * L = root->left;
            TreeNode * R = root->right;
            return isSymmetricPart(L, R);
        }
    
         bool isSymmetricPart(TreeNode* L, TreeNode* R)
         {
             if(NULL == L && NULL == R) return true;
             if(NULL == L && NULL != R || NULL == R && NULL != L) return false;
             if(L->val == R->val)
                 return isSymmetricPart(L->left, R->right) && isSymmetricPart(L->right, R->left);
             else
                 return false;
             
         }
    };

    更简短的写法

    class Solution {
    public:
        bool isSymmetric(TreeNode* root) {
            return !root ? true : isSymmetricHelper(root->left, root->right);
        }
    
        bool isSymmetricHelper(TreeNode* left, TreeNode* right) {
            if (!left && !right) { return true; }
            return 
                (left && right) &&
                (left->val == right->val) &&
                isSymmetricHelper(left->left, right->right) &&
                isSymmetricHelper(left->right, right->left);
        }
    };
  • 相关阅读:
    pyhon简单比较文本相似度的方法
    MongoDB数据的导入、导出、备份与恢复
    django实现注册、登录小系统
    nginx+uwsgi部署django的简单介绍
    python操作Excel的几种方式
    Python的Pexpect的简单使用
    JVM之类加载
    Java中的绑定
    JVM之GC
    JVM之内存管理
  • 原文地址:https://www.cnblogs.com/dplearning/p/4627307.html
Copyright © 2020-2023  润新知