zoukankan      html  css  js  c++  java
  • php实现求对称二叉树(先写思路,谋而后动)

    php实现求对称二叉树(先写思路,谋而后动

    一、总结

    1、先写思路,谋而后动

    二、php实现求对称二叉树

    题目描述:

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

    三、代码

    代码一:

     1 /*思路:首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同   //1、先写思路,谋而后动
     2 * 左子树的右子树和右子树的左子树相同即可,采用递归
     3 * 非递归也可,采用栈或队列存取各级子树根节点
     4 */
     5 public class Solution {
     6     boolean isSymmetrical(TreeNode pRoot)
     7     {
     8         if(pRoot == null){
     9             return true;
    10         }
    11         return comRoot(pRoot.left, pRoot.right);
    12     }
    13     private boolean comRoot(TreeNode left, TreeNode right) {
    14         // TODO Auto-generated method stub
    15         if(left == null) return right==null;
    16         if(right == null) return false;
    17         if(left.val != right.val) return false;
    18         return comRoot(left.right, right.left) && comRoot(left.left, right.right);
    19     }
    20 }

    错误代码:这个代码写的是在对称二叉树的基础上每棵树的左右子树还需要相等

     1 <?php
     2 
     3 /*class TreeNode{
     4     var $val;
     5     var $left = NULL;
     6     var $right = NULL;
     7     function __construct($val){
     8         $this->val = $val;
     9     }
    10 }*/
    11 function isSymmetrical($pRoot)
    12 {
    13     if($pRoot==null) return false;
    14     if(!$pRoot->left&&!$pRoot->right) return true;
    15     if(($pRoot->left&&!$pRoot->right)||(!$pRoot->left&&$pRoot->right)) return false;
    16     if($pRoot->left&&$pRoot->right){
    17         if($pRoot->left->val==$pRoot->right->val) return isSymmetrical($pRoot->left)&&isSymmetrical($pRoot->right);
    18         else return false;
    19     }
    20     //return false;
    21 }
  • 相关阅读:
    上周热点回顾(12.1212.18)
    上周热点回顾(11.2111.27)
    上周热点回顾(11.1411.20)
    博客园电子期刊2011年11月刊发布啦
    “CDN加速”测试
    上周热点回顾(11.2812.4)
    上周热点回顾(12.1912.25)
    上周热点回顾(12.512.11)
    提醒:安装MS11100 .NET Framework高危漏洞补丁一定要所有服务器一起安装
    郑州公积金
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9068132.html
Copyright © 2011-2022 走看看