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     }
  • 相关阅读:
    KMP算法
    找出第二大的数
    webpack 3 优化
    CocoaPods安装
    自适应水平垂直居中
    找出两个数组中都有,并且重复次数最多的元素
    swift 笔记
    Promise 用es5的基础实现
    $.ajax仿axios封装
    js基础拖拽效果
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/7017829.html
Copyright © 2011-2022 走看看