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

LeetCode题解:938. 二叉搜索树的范围和,BFS,JavaScript,详细注释

原题链接:
https://leetcode.cn/problems/range-sum-of-bst/

解题思路:

  1. 对于二叉搜索树的任意节点,左子树的所有节点值都小于它的值,右子树的所有节点值都小于它的值。
  2. 使用队列进行BFS搜索,如果当前节点的值小于low,只要向右子树搜索。如果当前节点的值大于high只要向左子树搜索。
  3. 如果当前节点的值在[low, high]之间,就将其与子树的值相加返回
/*** @param {TreeNode} root* @param {number} low* @param {number} high* @return {number}*/
var rangeSumBST = function (root, low, high) {let sum = 0 // 缓存结点值之和let queue = [root] // 使用队列进行BFS搜索,初始值为树的根节点// 当队列被清空,表示搜索结束while (queue.length) {// 缓存当前一层的节点数量let queueLength = queue.length// 将当前一层的节点清空while (--queueLength >= 0) {// 从队列中取出当前层的一个节点const node = queue.shift()// 如果节点为空,则跳过if (!node) {continue}// 当前节点的值小于low,它左侧的值都小于low,因此只要查找右侧节点if (node.val < low) {queue.push(node.right)}// 当前节点的值大于high,它左侧的值都大于high,因此只要查找右侧节点else if (node.val > high) {queue.push(node.left)} else {// 如果当前节点的值在[low, high]之间,就将其与子树的值加到sumsum += node.val// 继续向其子树搜索queue.push(node.left)queue.push(node.right)}}}return sum
}
http://www.lryc.cn/news/15174.html

相关文章:

  • istio初步了解
  • 【模板】用HTML编写邮件正文 | 各大邮箱几乎都会过滤css样式、js脚本等效果,如何用基础HTML编写?
  • 华为云计算之双活容灾
  • ASEMI高压MOS管ASE20N65SE体积,ASE20N65SE大小
  • resp连接redis服务器
  • 七天实现一个分布式缓存
  • 电子招标采购系统源码功能清单
  • mysql数据库基础知识
  • CAN总线通信
  • MATLAB/Simulink 通信原理及仿真学习(二)
  • CentOS7 防火墙(firewall)的操作命令
  • 文献工具汇总:论文查找、文献管理、文献翻译
  • SQL零基础入门学习(三)
  • 苹果手机如何快速的直接从相册里面的图片提取文字?
  • 【go】函数调用
  • Linux系统之Uboot、Kernel、Busybox思考之四
  • 为什么要经常阅读和分析计算机SCI期刊论文? - 易智编译EaseEditing
  • Shiro框架详解
  • redhawk:GSC file与STA file
  • 【Python学习笔记】46.Python3 math 模块和requests 模块
  • 页面导航-yang
  • Mac配置homebrew
  • 如何无报错运行代码YOLOv6,实现目标识别?
  • SQL91 返回购买价格为 10 美元或以上产品的顾客列表
  • Goreplay使用教程0221
  • 9、GPT-1-2-3
  • Python-四分位数计算
  • 一个简单的步骤让你的 Python 代码更干净
  • linux集群技术(二)--keepalived(高可用集群)(一)
  • C++中的类型转换