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 };
  • 相关阅读:
    jqmodal遮罩层的实现
    让Editplus和SVN集成
    asp.net很有用的字符串操作类
    TCP socket编程
    Adroid: ProgressBar 的使用
    在想的事情......
    I'm new to CNBlogs!
    压力
    开心工作
    feature
  • 原文地址:https://www.cnblogs.com/Asumi/p/12423738.html
Copyright © 2011-2022 走看看