当前位置: 首页 > news >正文

手机网站图片轮播代理怎么做

手机网站图片轮播,代理怎么做,chrome wordpress,phpstudy网站建设教程110. 平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:root [3,9,20,null,null,15,7] …

110. 平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。

本题中,一棵高度平衡二叉树定义为:

一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。

示例 1:

在这里插入图片描述

输入:root = [3,9,20,null,null,15,7]
输出:true

示例 2:

在这里插入图片描述

输入:root = [1,2,2,3,3,null,null,4,4]
输出:false

示例 3:

输入:root = []
输出:true

提示:

  • 树中的节点数在范围 [0, 5000] 内
  • −104<=Node.val<=104-10^4 <= Node.val <= 10^4104<=Node.val<=104

思路:自底向上的递归

自底向上递归的做法类似于后序遍历:

  • 对于当前遍历到的节点,先递归地判断其左右子树是否平衡;
  • 再判断以当前节点为根的子树是否平衡。如果存在一棵子树不平衡,则整个二叉树一定不平衡, 则返回。
  • 如果一棵子树是平衡的,则返回其高度(取左右子树最大值);

代码:(Java、C++)

Java

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {private boolean result = true;public boolean isBalanced(TreeNode root) {height(root);return result;}public int height(TreeNode root){if(root == null) return 0;int left = height(root.left);int right = height(root.right);if(Math.abs(left - right) > 1){result = false;return 0;}return 1 + Math.max(left, right);}
}

C++

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool result = true;bool isBalanced(TreeNode* root) {height(root);return result;}int height(TreeNode* root){if(root == NULL) return 0;int left = height(root->left);int right = height(root->right);if(abs(left - right) > 1){result = false;return 0;}return 1 + max(left, right);}
};

运行结果:

在这里插入图片描述

复杂度分析:

  • 时间复杂度O(n)O(n)O(n),其中 n 是二叉树中的节点个数。使用自底向上的递归,每个节点的计算高度和判断是否平衡都只需要处理一次,最坏情况下需要遍历二叉树中的所有节点,因此时间复杂度是 O(n)O(n)O(n)

  • 空间复杂度O(n)O(n)O(n),其中 n 是二叉树中的节点个数。空间复杂度主要取决于递归调用的层数,递归调用的层数不会超过 n

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我 leetCode专栏,每日更新!

注: 如有不足,欢迎指正!

http://www.yayakq.cn/news/85992/

相关文章:

  • 网站定制开发注意事项创业项目网
  • asp模版网站如何做优化手机网站 域名解析
  • 即墨城乡建设局网站聊城网站建设哪家专业
  • 公司网站制作苏州强化网站建设和管理
  • 四平网站设计公司wordpress移动导航菜单
  • 源代码代做网站网站seo培训
  • 帝国cms做视频网站性能如何改版网站会影响百度
  • 游戏网站做关键字国内最新新闻内容
  • 湖南做网站 地址磐石网络网页建设软件
  • 东莞好的网站建设公司太原制作网站的工作室
  • 网站不备案怎么办杭州网络营销
  • 网站推广策划书范文如何做好互联网营销推广
  • 怎样上传网站网页设计师中级证书
  • 新泰营销型网站建设肥料网站建设 中企动力
  • 网站后台账号密码怎样做一个公司网站
  • 网站怎么做宣传visual studio做的网站
  • 九八智能建站网站开发技术分析
  • 网站logo如何做清晰云浮网站设计
  • 如何在网站上做关键词足球比赛直播回放完整版
  • 学校网站管理方案旅行社手机网站建设成
  • 建立网站要什么条件和多少钱邮政营销案例100例
  • 网站建设考虑哪些因素企业邮箱申请理由
  • 郑州建设网站费用wordpress怎么挂广告
  • 湖南网站建设开发公司泾川门户网
  • 桥的设计网站建设西安网络科技公司有哪些
  • 相亲网站开发与设计报告招聘网站怎么做才能吸引人
  • 南昌企业做网站设计玛丽与魔女之花网页设计教程
  • 做360手机网站快速唐山网站建设价格
  • 网站代码框架龙岗网
  • 北京哪家做网站网站做301重定向怎么做