zoukankan      html  css  js  c++  java
  • 平衡二叉树

    输入一棵二叉树,判断该二叉树是否是平衡二叉树。

    方法一:递归,每次求解left,right的深度然后做差判断。之后递归left&&right。

     1 class Solution {
     2 public:
     3     bool IsBalanced_Solution(TreeNode* pRoot) {
     4         if(pRoot==NULL) return true;
     5         int left=treedepth(pRoot->left);
     6         int right=treedepth(pRoot->right);
     7         int diff=left-right;
     8         if(diff>1||diff<-1)
     9             return false;
    10         return IsBalanced_Solution(pRoot->left)&&IsBalanced_Solution(pRoot->right);
    11     }
    12 private:
    13     int treedepth(TreeNode* p){
    14         if(p==NULL) return 0;
    15         int left=treedepth(p->left);
    16         int right=treedepth(p->right);
    17         return (left>right?left+1:right+1);
    18     }
    19 };

    方法二:每次递归都判断是否为平衡,减少遍历次数。

     1 class Solution {
     2 public:
     3     bool IsBalanced_Solution(TreeNode* pRoot) {
     4         if(pRoot==NULL) return true;
     5         int depth=0;
     6         return isbalance(pRoot,&depth);
     7     }
     8 private:
     9     bool isbalance(TreeNode* p,int * depth){
    10         if(p==NULL){
    11             *depth=0;
    12             return true;
    13         }
    14             
    15         int left;
    16         bool bl;
    17         bl=isbalance(p->left,&left);
    18         int right;
    19         bool br;
    20         br=isbalance(p->right,&right);
    21         if(bl&&br){
    22             *depth=left>right?left+1:right+1;
    23             int diff=left-right;
    24             if(diff>1||diff<-1)
    25                 return false;
    26             else
    27                 return true;
    28         }
    29         return false;
    30     }
    31 };
  • 相关阅读:
    Cannot load php5apache2_4.dll into server
    PHP合并数组
    为什么 echo 3 . print(2) . print(4) . 5 . 'c'的结果是45c2131
    PHP数据类型
    PHP变量
    SSH Key
    VMware Tools安装教程
    nginx: [emerg] getpwnam("nginx") failed
    JS 生成随机数
    JS 操作 cookie
  • 原文地址:https://www.cnblogs.com/zl1991/p/4777317.html
Copyright © 2011-2022 走看看