笔试面试题目:平衡二叉树的判断

article/2025/8/28 16:35:33

一. 前面的话

学如逆水行舟,不进则退。心如平原野马,易放难收。春节假期,基本结束,是该回归正常的节奏了。

生活和工作,需要平衡。紧张和松弛,亦需平衡。今天,我们来聊一个笔试面试题目:平衡二叉树的判断。

这个问题很简单,写点代码玩一下,一来是找回代码的感觉,二来是找回工作状态的感觉,经leetcode测试无误。

图片

二. 平衡二叉树的判断

平衡二叉树,是非常基础的内容。在数据结构中,经常用到的红黑树,便是基于平衡二叉树而言的,它有很多优良的性质。那么,到底什么是平衡二叉树呢?且看leetcode题目:

图片

那么,怎么判断一颗二叉树是否为平衡二叉树呢?直接根据上述定义判断就行。具体来说,就是:

  • 空树是平衡二叉树

  • 左右子树都是平衡二叉树

  • 左右子树高度之差不大于1

显然,这是一个递归问题,用递归算法即可。顺便说一下,在求二叉树高度时,也是一个递归问题。接下来,可以直接写程序了!当然,在写程序之前,也别着急,阅读原文那里,有一个彩蛋,希望你能看到。

接下来,就是写程序了,练练手,找找感觉,如下:

func isBalanced(root *TreeNode) bool {    if root == nil {        return true    }
    gap := getAbs(treeHeight(root.Left) - treeHeight(root.Right))    if isBalanced(root.Left) && isBalanced(root.Right) && gap <= 1 {        return true    }
    return false}
func treeHeight(root *TreeNode) int {    if root == nil {        return 0    }
    if root.Left == nil && root.Right == nil {        return 1    }
    if root.Left == nil {        return treeHeight(root.Right) + 1    }
    if root.Right == nil {        return treeHeight(root.Left) + 1    }
    return getMax(treeHeight(root.Left), treeHeight(root.Right)) + 1}
func getMax(x, y int) int {    if x > y {        return x    }
    return y}
func getAbs(x int) int {    if x < 0 {        return -x    }
    return x}

经在leetcode上进行自测,正确无误,符合预期。

三. 最后的话

这篇文章很简单,就当是从春节假期到工作的一个过渡文章吧。再次,祝大家生活工作平衡,就像本文所说的平衡二叉树一样。

金三银四,不少人要开始跳槽了,祝愿大家跳槽顺利,找到满意的工作,offer多多,money多多,也欢迎多来涛哥公众号逛逛。

·················· END ··················


http://chatgpt.dhexx.cn/article/Cr3IHMi6.shtml

相关文章

leetcode每日一题寒假版-2022-12-08 1812. 判断国际象棋棋盘中一个格子的颜色(easy)

&#x1f6a9; 学如逆水行舟&#xff0c;不进则退。 —— 《增广贤文》 2022-12-08 1812. 判断国际象棋棋盘中一个格子的颜色&#xff08;easy) 题目描述&#xff1a; 给你一个坐标 coordinates &#xff0c;它是一个字符串&#xff0c;表示国际象棋棋盘中一个格子的坐标。下…

如何养成学习的习惯

微信搜索【程序员囧辉】&#xff0c;关注这个坚持分享技术干货的程序员。 前言 学如逆水行舟&#xff0c;不进则退。每天进步一点点&#xff0c;总有一天能完成蜕变。本文是自己一路上走来的一些心得体会&#xff0c;希望能帮助到一些人逐步养成学习的习惯。 本文面向的人 已经…

Node.js全栈开发笔记与心得

highlight: a11y-dark 一、Node.js 全栈开发资料 1、前端入门基础 慕课网HTML CSS入门慕课网JS入门 javascript进阶篇 菜鸟教程html部分 菜鸟教程CSS部分阮一峰js入门 阮一峰es6教程 2、node 后端入门基础 node入门 Linux基础知识mysql数据库知识 数据库事务sequelize中…

学习如逆水行舟,只有坚持不断的学习,才能保持进步!我置顶了这些公众号

学习如逆水行舟&#xff0c;不进则退&#xff1b;只有坚持不断的学习,才能保持进步。今天给大家精心挑选的这几个优质的公众号&#xff0c;在行业深耕已久&#xff0c;相信大家一定会有所收获&#xff0c;感兴趣的可以关注一下。 前端技术精选 前端技术精选&#xff0c;分享最新…

移动磁盘显示由于IO设备错误,无法运行此项请求的文件找到办法

移动磁盘打不开由于IO设备错误,无法运行此项请求&#xff0c;是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意&#xff0c;这个盘不能格式化&#xff0c;否则数据会进一步损坏。具体的恢复方法看正文 工具/软件&#xff1a;星空数据恢复软件 步骤1&a…

如何找回由于IO设备错误,无法运行此项请求移动磁盘的文件

由于IO设备错误,无法运行此项请求说明这个盘的文件系统结构损坏了。在平时如果数据不重要&#xff0c;那么可以直接格式化就能用了。但是有的时候里面的数据很重要&#xff0c;那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解&#xff08;不格式化的恢复方法&…

移动硬盘提示由于IO设备错误,无法运行此项请求,要怎样寻回资料

由于IO设备错误,无法运行此项请求说明这个盘的文件系统结构损坏了。在平时如果数据不重要&#xff0c;那么可以直接格式化就能用了。但是有的时候里面的数据很重要&#xff0c;那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解&#xff08;不格式化的恢复方法&…

出现io error

今天写软件&#xff0c;使用手机调试&#xff0c;就只有HTC D816V显示IO error错误&#xff0c;其他手机都正常&#xff08;mx4 flyme4&#xff0c;moto x 4.4.2&#xff0c;htc u11 8.0&#xff0c;nexus 6p 8.1&#xff0c;安卓模拟器6.0&#xff09;也重启试过还是不行&…

硬盘提示无法访问由于IO设备错误的数据找回方法

D盘打不开由于IO设备错误&#xff0c;是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意&#xff0c;这个盘不能格式化&#xff0c;否则数据会进一步损坏。具体的恢复方法看正文 工具/软件&#xff1a;星空数据恢复软件 步骤1&#xff1a;先下载并解压…

硬盘无法访问由于IO设备错误,无法运行此项请求,里面的资料怎么寻回

机械硬盘打不开由于IO设备错误,无法运行此项请求&#xff0c;是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意&#xff0c;这个盘不能格式化&#xff0c;否则数据会进一步损坏。具体的恢复方法看正文 工具/软件&#xff1a;流星数据恢复软件 步骤1&a…

移动硬盘提示由于IO设备错误,无法运行此项请求数据怎么寻回

移动硬盘打不开由于IO设备错误,无法运行此项请求&#xff0c;是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意&#xff0c;这个盘不能格式化&#xff0c;否则数据会进一步损坏。具体的恢复方法看正文 工具/软件&#xff1a;AuroraDataRecovery 步骤1…

机械硬盘无法访问由于IO设备错误,无法运行此项请求,里面的数据怎么找到

硬盘打不开由于IO设备错误,无法运行此项请求&#xff0c;是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意&#xff0c;这个盘不能格式化&#xff0c;否则数据会进一步损坏。具体的恢复方法看正文 工具/软件&#xff1a;星空数据恢复软件 步骤1&#…

移动磁盘由于IO设备错误,无法运行此项请求文件怎样找到

由于IO设备错误,无法运行此项请求说明这个盘的文件系统结构损坏了。在平时如果数据不重要&#xff0c;那么可以直接格式化就能用了。但是有的时候里面的数据很重要&#xff0c;那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解&#xff08;不格式化的恢复方法&…

移动硬盘显示由于IO设备错误,无法运行此项请求,要如何找回文件

由于IO设备错误,无法运行此项请求说明这个盘的文件系统结构损坏了。在平时如果数据不重要&#xff0c;那么可以直接格式化就能用了。但是有的时候里面的数据很重要&#xff0c;那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解&#xff08;不格式化的恢复方法&…

机械硬盘提示由于IO设备错误,无法运行此项请求,要怎样寻回数据

磁盘打不开由于IO设备错误,无法运行此项请求&#xff0c;是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意&#xff0c;这个盘不能格式化&#xff0c;否则数据会进一步损坏。具体的恢复方法看正文 工具/软件&#xff1a;星空数据恢复软件 步骤1&#…

硬盘显示无法访问由于IO设备错误的文件找到办法

由于IO设备错误说明这个盘的文件系统结构损坏了。在平时如果数据不重要&#xff0c;那么可以直接格式化就能用了。但是有的时候里面的数据很重要&#xff0c;那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解&#xff08;不格式化的恢复方法&#xff09; 工具/软件…

D盘显示无法访问由于IO设备错误的数据寻回办法

由于IO设备错误说明这个盘的文件系统结构损坏了。在平时如果数据不重要&#xff0c;那么可以直接格式化就能用了。但是有的时候里面的数据很重要&#xff0c;那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解&#xff08;不格式化的恢复方法&#xff09; 工具/软件…

移动硬盘显示由于IO设备错误,无法运行此项请求数据怎样找回

由于IO设备错误,无法运行此项请求说明这个盘的文件系统结构损坏了。在平时如果数据不重要&#xff0c;那么可以直接格式化就能用了。但是有的时候里面的数据很重要&#xff0c;那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解&#xff08;不格式化的恢复方法&…

执行请求的操作时遇到错误:IO 错误: The Network Adapter could not establish the connection,怎么解决

故障&#xff1a;在启动Oracle数据库时&#xff0c;发生了如下错误&#xff1a; 数据库已经配置好的情况下&#xff0c;发生了这种错误&#xff0c;连不到数据库服务器&#xff0c;一般最有可能发生的原因是网络配置问题&#xff0c;当数据库服务器的网络IP自动更改后&#xff…

android U盘 io异常,win10系统打开u盘提示由于io设备错误的解决方法

很多小伙伴都遇到过win10系统打开u盘提示由于io设备错误的困惑吧&#xff0c;一些朋友看过网上零散的win10系统打开u盘提示由于io设备错误的处理方法&#xff0c;并没有完完全全明白win10系统打开u盘提示由于io设备错误是如何解决的&#xff0c;今天小编准备了简单的解决办法&a…