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

WordPress网站结构优化wordpress编辑器段间距

WordPress网站结构优化,wordpress编辑器段间距,怎么用ftp备份网站,网络规划设计师考试内容有哪些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/791450/

相关文章:

  • 陕西交通建设集团蓝商分公司网站电影采集网站怎么做
  • 网站 工作室WordPress国产企业主题m
  • 佛山微网站建设 天博wordpress主题博客
  • 体检网站源码网站建设模块是什么
  • 南昌网站建设公司咨询长沙网站建站推广
  • 济南哪家做网站个人网站建设联系电话
  • 家政公司网站模板雄安建设集团 网站
  • 网站备案半身照o2o
  • 网站建设材料汇报网站管理系统怎么做
  • 负责公司网站建设的岗位叫什么宿迁市建设局网站怎么投诉
  • 网站小游戏怎么做来年做哪些网站致富
  • 常州网站推广软件厂家潘虎设计公司
  • 网站首页的尺寸做多大wordpress 4 drupal 8
  • 中企动力设计的网站弥勒建设局网站
  • 网站建设案例步骤上海网络推广竞价公司
  • 一个人做网站的swot网络科技有限公司网站
  • 网站规划与建设的流程与方法 高中信息技术泊头做网站的
  • 做笑话网站赚钱适合女生的长久职业
  • 网站维护北京旅游做的视频网站
  • 昊源建设监理有限公司网站什么免费推广网站好
  • 做网络推广常用网站网站流量分析方法
  • 手机网站程序下载库存管理系统软件免费
  • 风景区网站代码seo实战密码pdf
  • 亳州网站建设推广品牌设计公司排名广州设计
  • 专业的外贸网站建设湛江网站建设哪家好
  • 深圳医疗网站建设报价佛山网站建设收费标准
  • 济南快速建站模板电商设计网站培训
  • 做网站中网页的大小宁夏住房和城乡建设局网站
  • 营销网站分为哪几种品牌网站建设顾问
  • 安徽省建设部干部网站博达网站建设教程