zoukankan      html  css  js  c++  java
  • 剑指offer之【平衡二叉树】

    题目:

      平衡二叉树

    链接:

      https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId=13&tqId=11192&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

    题目描述:

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

    思路:

      根据计算二叉树深度的方法进行改进,只需深度遍历一次,从叶节点向跟节点方向行进。

    代码:

     1 class Solution {
     2 public:
     3     bool IsBalanced_Solution(TreeNode* pRoot)
     4     {
     5         int deep;
     6         return DFS(pRoot,deep);
     7 
     8 
     9     }
    10     bool DFS(TreeNode* root,int & deep){
    11         if(root == nullptr){
    12               deep = 0;
    13             return true;
    14         }
    15         int ld,rd;
    16         if(DFS(root->left,ld)&& DFS(root->right,rd)){
    17             if(abs(rd-ld)<=1){
    18                 deep = max(ld,rd)+1;
    19                 return true;
    20             }
    21         }
    22         return false;
    23     }
    24 };
  • 相关阅读:

    链表
    队列
    稀疏数组
    SQL——流程控制
    SQL——存储过程与函数
    SOA
    MVC模式
    《一线架构师实践指南》--阅读笔记三
    《一线架构师实践指南》-阅读笔记二
  • 原文地址:https://www.cnblogs.com/wangshujing/p/6945136.html
Copyright © 2011-2022 走看看