zoukankan      html  css  js  c++  java
  • 对称的二叉树

    题目

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

    分析

      因为二叉树是对称的,所以将该树自己与自己的递归比较,分为三种情况:

      (1)当两棵树都为空时,返回true;

      (2)当只有一颗树为空时,返回false;

      (3)当两棵树都不为空时,进行递归判断,判断条件为:pRoot1的左孩子==pRoot2的右孩子 以及 pRoot1的右孩子==pRoot2的左孩子

    代码

     1     boolean isSymmetrical(TreeNode pRoot){
     2         return isS(pRoot, pRoot);
     3     }
     4     
     5     boolean isS(TreeNode pRoot1, TreeNode pRoot2){
     6         if(pRoot1==null && pRoot2==null)
     7             return true;
     8         if(pRoot2==null || pRoot1==null){
     9             return false;
    10         }
    11         if(pRoot1.val!=pRoot2.val)
    12             return false;
    13         return isS(pRoot1.left, pRoot2.right) && isS(pRoot1.right, pRoot2.left);
    14     }
  • 相关阅读:
    ROS配置C++14环境
    ubantu查看环境变量
    C++指向函数的指针
    ubantu删除文件(夹)
    ROS环境搭建
    vmware workstation pro 安装ubantu虚拟机
    Win7下删除Ubuntu启动项
    ubantu16.04
    ubantu卸载软件
    github之克隆
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/7017829.html
Copyright © 2011-2022 走看看