JAVA练习311- 验证二叉搜索树
题目概览给你一个二叉树的根节点root判断其是否是一个有效的二叉搜索树。有效二叉搜索树定义如下节点的左子树只包含严格小于当前节点的数。节点的右子树只包含严格大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1输入root [2,1,3]输出true示例 2输入root [5,1,4,null,null,3,6]输出false解释根节点的值是 5 但是右子节点的值是 4 。提示树中节点数目范围在[1, 104]内-2^31 Node.val 2^31 - 1来源98. 验证二叉搜索树 - 力扣LeetCode解题分析方法一递归令当前节点为 cur左右节点为 left 和 right那么一定满足left 的值小于 cur 的值right 的值大于 cur 的值如果 cur 的上面节点有右节点left 的值要大于最大的右节点如果 cur 的上面节点有左节点right 的值要小于最小的左节点令最大右节点值和最小左节点值为 max 和 min可得max left curcur right min因此我们可以用递归实现将 min 和 max 作为参数往下传即可。时间复杂度O(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 isValidBST(TreeNode root) { return isValidBST(root, Long.MAX_VALUE, Long.MIN_VALUE); } public boolean isValidBST(TreeNode root, long max, long min) { if (root null) { return true; } if (root.val max || root.val min) { return false; } return isValidBST(root.left, root.val, min) isValidBST(root.right, max, root.val); } }方法二中序遍历因为中序遍历时 左-根-右 的顺序遍历出来的数一定是递增的因此我们只需要前后的数是否递增即可。中序遍历可以用栈来实现这里不细讲。时间复杂度O(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 isValidBST(TreeNode root) { DequeTreeNode dq new LinkedList(); long pre Long.MIN_VALUE; while(root ! null || !dq.isEmpty()) { while(root ! null) { dq.push(root); root root.left; } TreeNode node dq.pop(); if (node.val pre) { return false; } pre node.val; root node.right; } return true; } }

相关新闻

BMS负电压处理与采样电路设计详解

BMS负电压处理与采样电路设计详解

1. BMS负电压场景概述在电池管理系统(BMS)设计中,负电压的产生与处理是一个容易被忽视但至关重要的技术环节。不同于常规的正电压采样,负电压场景往往涉及更复杂的电路拓扑和信号调理需求。根据实际项目经验,BMS中典型…

2026/7/21 15:23:57 阅读更多 →
QModMaster实战指南:工业级Modbus调试工具深度解析

QModMaster实战指南:工业级Modbus调试工具深度解析

QModMaster实战指南:工业级Modbus调试工具深度解析 【免费下载链接】qModbusMaster Fork of QModMaster (https://sourceforge.net/p/qmodmaster/code/ci/default/tree/) 项目地址: https://gitcode.com/gh_mirrors/qm/qModbusMaster QModMaster作为一款基于…

2026/7/22 16:07:10 阅读更多 →
RDL-first工艺在先进封装中的优势与关键技术

RDL-first工艺在先进封装中的优势与关键技术

1. RDL-first工艺在先进封装中的核心定位在半导体封装技术演进到2.5D/3D集成阶段时,RDL-first(先布线后塑封)工艺正在颠覆传统封装流程。与后道RDL工艺相比,RDL-first将金属布线层制作提前到晶圆切割前完成,这种工艺顺…

2026/7/22 18:50:10 阅读更多 →

最新新闻

智联招聘发布招聘信息收费吗?HR 实测主流平台成本对比

智联招聘发布招聘信息收费吗?HR 实测主流平台成本对比

大家好,我是持证人力资源管理师,日常负责企业招聘渠道搭建、招聘成本管控。工作中经常被老板、同行 HR 问到同一个问题:智联招聘发布招聘信息收费吗? 很多中小微企业、初创公司初次入驻招聘平台,分不清免费试用、基础发…

2026/7/23 19:30:54 阅读更多 →
J4105 工控小主机刷写 Proxmox VE 及部署 OpenWrt 与 Home Assistant OS完整指南

J4105 工控小主机刷写 Proxmox VE 及部署 OpenWrt 与 Home Assistant OS完整指南

J4105 工控小主机刷写 Proxmox VE 及部署 OpenWrt 与 Home Assistant OS完整指南 本文档详细介绍 J4105 工控小主机的刷机流程,核心分为准备工作、安装 Proxmox VE(PVE)、创建 OpenWrt 与 Home Assistant OS 虚拟机三大步骤,每一步均包含具体工具、操作细节及注意事项,确…

2026/7/23 19:30:54 阅读更多 →
树莓派4B变身软路由全攻略:从OpenWrt刷机到双网卡配置避坑指南

树莓派4B变身软路由全攻略:从OpenWrt刷机到双网卡配置避坑指南

树莓派4B软路由实战:从闲置板卡到高性能网络中枢的完整构建 手头有一块闲置的树莓派4B,除了偶尔跑跑脚本、做做小实验,似乎总感觉它的潜力没有被完全释放。如果你也和我一样,看着这块性能不俗的板卡,思考着如何让它发挥更大的价值,那么将其改造为一台高性能软路由,或许…

2026/7/23 19:30:54 阅读更多 →
Gino同传带练小伙伴Dora第12天,介入无稿同传练习第1天。Gino同传带练,每个小伙伴的基础不同情况不一样,有针对性地安排先练哪一项。有的可能先练视译,有的可能先练有稿同传,有的可能先练无稿

Gino同传带练小伙伴Dora第12天,介入无稿同传练习第1天。Gino同传带练,每个小伙伴的基础不同情况不一样,有针对性地安排先练哪一项。有的可能先练视译,有的可能先练有稿同传,有的可能先练无稿

Gino同传带练小伙伴Dora第12天,介入无稿同传练习第1天。Gino同传带练,每个小伙伴的基础不同情况不一样,有针对性地安排先练哪一项。有的可能先练视译,有的可能先练有稿同传,有的可能先练无稿同传。不管先练哪项&#x…

2026/7/23 19:30:54 阅读更多 →
深入解析Tiva TM4C129X时钟与电源管理:从PLL、LDO到低功耗唤醒实战

深入解析Tiva TM4C129X时钟与电源管理:从PLL、LDO到低功耗唤醒实战

1. 项目概述与核心价值 在嵌入式开发领域,尤其是面对物联网节点、便携式设备或电池供电的工业控制器时,我们常常陷入一个两难境地:一方面需要高性能以处理复杂任务或高速通信,另一方面又必须严格控制功耗以延长设备续航。这个矛盾…

2026/7/23 19:30:54 阅读更多 →
别让科研 Agent 直接从 Chunk 跳到结论:为什么 metadata layer 才是第一道防线

别让科研 Agent 直接从 Chunk 跳到结论:为什么 metadata layer 才是第一道防线

导语 2026 年 7 月 15 日,Nature 报道了“被篡改数据集可能误导 AI agents”;2026 年 7 月 21 日,OpenAI 又披露了评测环境里的安全事件。对科研 Agent 来说,这两件事指向同一个问题:风险不只来自“没搜到”&#xff…

2026/7/23 19:29:54 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻