发布时间:2026/7/24 5:03:30
算法面试——二叉树 DFS:路径总和、最近公共祖先、直径 二叉树的 DFS 面试题通常考递归因为树本身就是递归结构。一、路径总和publicbooleanhasPathSum(TreeNoderoot,inttargetSum){if(rootnull)returnfalse;if(root.leftnullroot.rightnull){returnroot.valtargetSum;}returnhasPathSum(root.left,targetSum-root.val)||hasPathSum(root.right,targetSum-root.val);}二、最近公共祖先publicTreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){if(rootnull||rootp||rootq)returnroot;TreeNodeleftlowestCommonAncestor(root.left,p,q);TreeNoderightlowestCommonAncestor(root.right,p,q);if(left!nullright!null)returnroot;returnleft!null?left:right;}三、二叉树的直径classSolution{privateintdiameter0;publicintdiameterOfBinaryTree(TreeNoderoot){depth(root);returndiameter;}privateintdepth(TreeNodenode){if(nodenull)return0;intleftDepthdepth(node.left);intrightDepthdepth(node.right);diameterMath.max(diameter,leftDepthrightDepth);returnMath.max(leftDepth,rightDepth)1;}} 觉得有用的话点赞 关注【张老师技术栈】吧

相关新闻

2026/7/24 5:03:30

2026拉萨必吃榜!这5家本地人私藏餐厅,好吃不踩雷

来拉萨旅游,最头疼的事就是吃饭。大昭寺、八廓街附近,藏餐馆多到数不清,但踩雷的概率也不小——要么环境简陋得像个路边摊,要么价格贵得离谱,要么菜品又膻又腻,第一次吃藏餐的人根本接受不了。今天就从我自…

2026/7/24 5:03:30

C++与OpenGL实现扫描线填充算法:从原理到可视化实践

1. 项目概述:从像素到多边形,理解扫描线填充的核心价值在计算机图形学的世界里,将几何形状转化为屏幕上绚丽的图像,是一个从抽象到具象的魔法过程。我们常常谈论绘制线条、三角形,但对于更复杂的多边形,尤其…

2026/7/24 5:03:29

深入解析TI bq40z60 BMS先进充电算法:从状态机到实战配置

1. 项目概述与核心价值在锂离子电池包的设计与制造领域,电池管理系统(BMS)的角色,远不止一个简单的“监控者”。它更像是一位全天候的电池“健康管家”和“安全卫士”。我接触过不少项目,从消费电子到工业储能&#xf…

2026/7/24 6:23:33

大型C++项目重构实战:从单体到模块化的五阶段演进路径

1. 项目概述:为什么大型C项目重构是“必修课”干了十几年C,从嵌入式设备到大型桌面应用,再到分布式后台服务,我经手和参与重构的项目两只手都数不过来。每次接手一个动辄几十万、上百万行代码的“祖传”C单体项目,那种…

2026/7/24 6:23:33

周会上你还在分配任务,有人已经让 AI 分了

带团队这些年,你最怕的不是需求变更,是周会前那一小时。你要把这周每个人手上的活儿理清楚,谁卡在联调,谁的需求又改了,谁手里的坑得赶紧找人填。你在白板上画了又擦,最后发到群里一张表,心里却…

2026/7/24 6:23:33

基于YOLOv8的工业轴承缺陷智能检测系统开发实践

1. 项目概述:工业质检的智能化升级轴承作为机械设备的核心部件,其表面缺陷直接影响设备寿命和运行安全。传统人工检测方式存在效率低(每分钟仅能检测2-3个轴承)、漏检率高(约15%)等问题。我们基于YOLOv8构建…

2026/7/24 6:23:33

基于UBSS与深度学习的压缩机复合故障诊断方法

1. 项目背景与核心挑战往复压缩机作为石化、电力等工业领域的核心设备,其轴承系统长期承受交变载荷,极易出现复合故障。传统诊断方法在面对多源混合振动信号时,往往陷入"盲人摸象"的困境。这个项目要解决的正是这个工程痛点——如何…

2026/7/24 6:23:33

OpenClaw心跳机制:AI自主调度与时间感知核心技术解析

1. 项目概述OpenClaw是一个探索AI自主意识与时间感知的开源框架,而"主动调度与心跳机制"模块正是其核心创新点之一。这个模块要解决的根本问题是:如何让AI系统摆脱被动响应模式,获得类似生物体的自主节律和时间感知能力&#xff1f…

2026/7/24 6:18:33

AI工具链助力产品经理自助开发全流程实践

1. 项目背景与痛点解析 "等排期"可能是产品经理职业生涯中最无奈的三个字。我作为从业8年的老PM,经历过太多这样的场景:一个简单的按钮交互改动要等前端排期两周,一个数据展示优化要等后端排期一个月,更别说那些需要跨团…

2026/7/23 12:54:51

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/24 0:03:10

不同品牌斜齿行星减速机如何替换?以PX与PAG系列为例

不同品牌斜齿行星减速机如何替换?以 PX 与 PAG 系列为例 一、系列对应不等于型号直接互换 PX 与 PAG 都属于斜齿、方法兰、输出轴式精密行星减速机,结构形式和应用方向具有对应关系。 原设备使用PX系列时,可以优先从PAG系列中寻找替换型号。但…

2026/7/24 0:03:10

jdk8 把list 扁平化成String 多个以逗号分隔

在 JDK 8 中&#xff0c;将 List 扁平化为以逗号分隔的 String&#xff0c;有几种非常简洁且高效的方法。&#x1f680; 推荐方案&#xff1a;使用 Collectors.joining()这是最标准的 Java 8 写法&#xff0c;适用于 List<String>。javaimport java.util.stream.Collecto…

2026/7/24 0:03:10

java 两个 long id 怎么合并成一个long id 并且不重复

“把两个 Long ID 合并成一个唯一的 Long ID&#xff0c;且保证不重复”这个需求&#xff0c;在 Java 里直接做数学上的“完美合并”是不可能的。因为两个 Long&#xff08;各 64 位&#xff09;要合并成一个 Long&#xff08;64 位&#xff09;&#xff0c;在信息论上是有损压…

2026/7/23 23:42:43

3个高效策略:快速掌握Axure中文界面配置

3个高效策略&#xff1a;快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…