zoukankan      html  css  js  c++  java
  • 面试题59 对称的二叉树

    题目描述

    请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
     1 /*
     2 struct TreeNode {
     3     int val;
     4     struct TreeNode *left;
     5     struct TreeNode *right;
     6     TreeNode(int x) :
     7             val(x), left(NULL), right(NULL) {
     8     }
     9 };
    10 */
    11 class Solution {
    12 public:
    13     bool isSame(TreeNode* p1, TreeNode* p2){
    14         if (p1 == NULL && p2 == NULL)
    15             return true;
    16         if (p1 == NULL && p2 != NULL)
    17             return false;
    18         if (p1 != NULL && p2 == NULL)
    19             return false;
    20         if (p1->val == p2->val)
    21             return isSame(p1->left, p2->right) && isSame(p1->right, p2->left);
    22         else
    23             return false;
    24         
    25     }
    26     bool isSymmetrical(TreeNode* pRoot)
    27     {
    28         if (!pRoot)
    29             return true;
    30         return isSame(pRoot->left, pRoot->right);
    31     }
    32 
    33 };
  • 相关阅读:
    SpringMVC中的适配器
    JVM的理解
    设计模式 特点比较
    AOP代理模式
    Spring配置补充
    MayBatis与Spring的整合
    增强和注解
    注入
    Mybatis的执行过程
    k8s认证与授权
  • 原文地址:https://www.cnblogs.com/wanderingzj/p/5375411.html
Copyright © 2011-2022 走看看