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

LeetCode[110]平衡二叉树

思路:

本题解法依旧是后序遍历,采用左右根来解决,如果你要采用前序遍历什么的,你需要先计算根节点,那根节点的计算又要计算子节点,然后再递归左右,这样子节点就会被重复计算,对时间复杂度来说不太友好,属于O(nlog(n))时间复杂度。

但采用后序遍历就不一样了,只需要把每个节点都遍历一下就能得出答案,所以时间复杂度为O(n), 高下立判

代码:

/*** 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 {public boolean isBalanced(TreeNode root) {return getHeight(root) != -1;}public int getHeight(TreeNode root) {if (root == null)return 0;int leftHeight = getHeight(root.left);if (leftHeight == -1)return -1;int rightHeight = getHeight(root.right);if (rightHeight == -1)return -1;if (Math.abs(leftHeight - rightHeight) > 1) {return -1;}return Math.max(leftHeight, rightHeight) + 1;}
}

http://www.dtcms.com/a/224333.html

相关文章:

  • 前端-不对用户显示
  • 域权限维持和后渗透密码收集
  • [VMM]现代 CPU 中用于加速多级页表查找的Page‐Table Entry原理
  • Qt SQL模块基础
  • 元胞自动机(Cellular Automata, CA)
  • CQF预备知识:一、微积分 -- 1.8.3 二元泰勒展开详解
  • 【Rust 轻松构建轻量级多端桌面应用】
  • 利用aqs构建一个自己的非公平独占锁
  • 【LUT技术专题】图像自适应3DLUT
  • 设计模式——原型设计模式(创建型)
  • Cypress + React + TypeScript
  • macOS 上安装运行 PowerShell
  • 电路图识图基础知识-常用仪表识图及接线(九)
  • uniapp uni-id Error: Invalid password secret
  • Oracle用户账号过期终极解决方案
  • 嵌入式学习笔记 - STM32 HAL库以及标准库内核以及外设头文件区别问题
  • python 空气质量可视化,数据分析 + 前后端分离 + ppt 演讲大纲
  • 【数据分析】基于Cox模型的R语言实现生存分析与生物标志物风险评估
  • 告别硬编码!用工厂模式优雅构建可扩展的 Spring Boot 应用 [特殊字符]
  • AI炼丹日志-25 - OpenAI 开源的编码助手 Codex 上手指南
  • 修改 vscode 左侧导航栏的文字大小 (更新版)
  • C++文件和流基础
  • uniapp 键盘顶起页面问题
  • 解决8080端口被占问题
  • CppCon 2014 学习:ODB, Advanced Weapons and Tactics
  • 【Python高阶】面向对象
  • VMvare 创建虚拟机 安装CentOS7,配置静态IP地址
  • |从零开始的Pyside2界面编程|绘图、布局及页面切换
  • 2.2HarmonyOS NEXT高性能开发技术:编译优化、内存管理与并发编程实践
  • tomcat服务器以及接受请求参数的方式