小工具知识网

当前位置: 首页 > 行业知识 > LeetCode 2476.二叉搜索树最近节点查询:中序遍历 + 二分查找

行业知识

LeetCode 2476.二叉搜索树最近节点查询:中序遍历 + 二分查找

2026-10-18 23:24:00 来源:互联网转载

【LetMeFly】2476.二叉搜索树最近节点查询:中序遍历 + 二分查找

力���题目链接:https://leetcode.cn/problems/closest-nodes-queries-in-a-binary-search-tree/

给你一个 二叉搜索树 的根节点 root ,和一个由正整数组成、长度为 n 的数组 queries 。

请你找出一个长度为 n 的 二维 答案数组 answer ,其中 answer[i] = [mini, maxi] :

  • mini 是树中小于等于 queries[i] 的 最大值 。如果不存在这样的值,则使用 -1 代替。
  • maxi 是树中大于等于 queries[i] 的 最小值 。如果不存在这样的值,则使用 -1 代替。

    返回数组 answer 。

     

    示例 1 :

    输入:root = [6,2,13,1,4,9,15,null,null,null,null,null,null,14], queries = [2,5,16]输出:[[2,2],[4,6],[15,-1]]解释:按下面的描述找出并返回查询的答案:- 树中小于等于 2 的最大值是 2 ,且大于等于 2 的最小值也是 2 。所以第一个查询的答案是 [2,2] 。- 树中小于等于 5 的最大值是 4 ,且大于等于 5 的最小值是 6 。所以第二个查询的答案是 [4,6] 。- 树中小于等于 16 的最大值是 15 ,且大于等于 16 的最小值不存在。所以第三个查询的答案是 [15,-1] 。

    示例 2 :

    输入:root = [4,null,9], queries = [3]输出:[[-1,4]]解释:树中不存在小于等于 3 的最大值,且大于等于 3 的最小值是 4 。所以查询的答案是 [-1,4] 。

     

    提示:

    • 树中节点的数目在范围 [2, 105] 内
    • 1 private: vector if (!root) { return; } dfs(root-left); v.push_back(root-val); dfs(root-right); }public: vector dfs(root); vector int m = -1, M = -1; vector M = *it; if (M == queries[i]) { m = M; goto loop; } } if (it != v.begin()) { m = *(it - 1); } loop: ans[i] = {m, M}; } return ans; }};

上一篇:Win10缓存揭秘,轻松解决缓存问题!

下一篇:服务器如何设置链接方式?