zoukankan      html  css  js  c++  java
  • 对称树

     闲着没事,做两道题玩玩,有一些地方还是有一些意思的;

    对称树

     1 ```c++
     2 bool isSymmetric(TreeNode *root)
     3 {
     4 //约定空树是对称的
     5 if(root==NULL)
     6 return true;
     7 else
     8 return isEqual(root->left,root->right);
     9 }
    10 //判断是否对称,应该是有两个指针去指的,因此写一个两个指针参数的判断函数,递归的进行判断
    11 bool isEqual(TreeNode *a,TreeNode *b)
    12 {
    13 //当前两个结点均为空,则这一步的判断上是对称的
    14 if(a==NULL && b==NULL)
    15 return true;
    16 //只有一个为空,另一个不为空,显然不对称
    17 else if(a==NULL || b==NULL)
    18 return false;
    19 //如果当前的两个结点非空且相等,则递归的判断他们的左右-右左结点
    20 if(a->val == b->val)
    21 return isEqual(a->left,b->right)&&isEqual(a->right,b->left);
    22 else return false;
    23 }
    24 ```

    其实对称树就是从根节点开始,用两个指针分别指针两边,然后判断是否相等(包括值相等、或者均为空),就是isEqual函数,用递归写的,也很简洁。

  • 相关阅读:
    java 命令
    测试事件响应修改界面内容
    ASP.NET MVC 解决账号重复登录问题
    Redis 安装
    js返回页面顶部
    Brackets 前端编辑器推荐
    一点点............
    响应式——em,rem,px
    新知识——响应式
    面试心得
  • 原文地址:https://www.cnblogs.com/gaoduan/p/4055188.html
Copyright © 2011-2022 走看看