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* pRoot) {
    14         if(pRoot == NULL) return true;
    15         return isMirror(pRoot->left, pRoot->right);
    16     }
    17     bool isMirror(TreeNode* p1, TreeNode* p2) {
    18         if(p1 == NULL && p2 == NULL) return true;
    19         if(p1 == NULL || p2 == NULL) return false;
    20         if(p1->val != p2->val) return false;
    21         return isMirror(p1->left, p2->right) && isMirror(p1->right, p2->left);
    22     }
    23 };
  • 相关阅读:
    Jemter---基础概念
    Jmeter---线程操作
    性能接口面试题
    Linux---网络命令
    测试所用链接地址
    Linux---压缩解压命令
    Linux----用户管理命令
    性能面试题
    Linux---帮助命令
    Linux--文件搜索命令
  • 原文地址:https://www.cnblogs.com/jacen789/p/7747801.html
Copyright © 2011-2022 走看看