zoukankan      html  css  js  c++  java
  • 【剑指offer】对称的二叉树

    题目链接:对称的二叉树

     

    题意:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

     

    题解:判断树的左子树右子树的节点值是否相等。且镜像对称,即左子树的左节点=右子树的右节点。递归即可。

     

    代码:

     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 isSymmetrical(TreeNode* pRoot1,TreeNode* pRoot2){
    14         if(pRoot1 == NULL && pRoot2 == NULL)    return true;
    15         if(pRoot1 == NULL || pRoot2 == NULL)    return false;
    16         if(pRoot1->val != pRoot2 -> val)    return false;
    17         return isSymmetrical(pRoot1->left,pRoot2->right) &&
    18             isSymmetrical(pRoot1->right,pRoot2->left);
    19     }
    20     bool isSymmetrical(TreeNode* pRoot){
    21         if(pRoot==NULL)    return true;
    22         return isSymmetrical(pRoot,pRoot);
    23     }
    24 
    25 };
  • 相关阅读:
    python分析log
    单词长度统计,字符数量统计直方图
    单词计数
    字符替换
    HP Mobile Center 1.01 Related System Requirements
    字符统计
    文件复制
    C语言,不是从hello world开始
    最近
    echarts Map(地图) 不同颜色区块显示
  • 原文地址:https://www.cnblogs.com/Asumi/p/12423738.html
Copyright © 2011-2022 走看看