【 每天学习一点算法 2026/03/14】二叉搜索树中第K小的元素

每天学习一点算法 2026/03/14

题目:二叉搜索树中第K小的元素

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(k 从 1 开始计数)。

  1. 首先想到的就是先遍历,再排序,再找到第 k 小的元素

    typescript 复制代码
    /**
     * Definition for a binary tree node.
     * class TreeNode {
     *     val: number
     *     left: TreeNode | null
     *     right: TreeNode | null
     *     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
     *         this.val = (val===undefined ? 0 : val)
     *         this.left = (left===undefined ? null : left)
     *         this.right = (right===undefined ? null : right)
     *     }
     * }
     */
    
    function kthSmallest(root: TreeNode | null, k: number): number {
      const res: number[] = []
      function helper (root: TreeNode | null) {
        if (root === null) return null
        res.push(root.val)
        helper(root.left)
        helper(root.right)
      }
      helper(root)
      return res.sort((a, b) => a - b)[k - 1]
    };
  2. 根据二叉树的特性:每个节点的左子树的结点一定比这个节点小,右子树的结点一定比这个节点大,那么二叉树的中序遍历结果一定是递增的,所以我们可以省去排序的步骤

    typescript 复制代码
    function kthSmallest(root: TreeNode | null, k: number): number {
      const res: number[] = []
      function helper (root: TreeNode | null) {
        if (root === null) return null
        helper(root.left)
        res.push(root.val)
        helper(root.right)
      }
      helper(root)
      return res[k - 1]
    };

题目来源:力扣(LeetCode)

相关推荐
QAQo7T1 小时前
Python组蓝桥杯备赛超详细知识点总结笔记_排序算法篇
笔记·python·算法·蓝桥杯·排序算法
千里之行,始于足下sanhai1 小时前
P8686 [蓝桥杯 2019 省 A] 修改数组 - 数字魔法大冒险 题解
c++·算法·动态规划
小星星闪亮登场2 小时前
Codeforces Round 1115 ( Div. 2)
数据结构·c++·算法·贪心算法·排序算法·codeforces
计算机小白一个2 小时前
蓝桥杯 Java B 组之哈希表应用(两数之和、重复元素判断)
java·数据结构·算法·蓝桥杯
Loge编程生活2 小时前
打卡信奥刷题(3449)用C++实现信奥题 P10429 [蓝桥杯 2024 省 B] 拔河
开发语言·数据结构·c++·算法·青少年编程
星辰即远方2 小时前
计算器仿写总结
学习·ui·ios·cocoa·xcode
2601_957174653 小时前
大模型算法 简单 容易 用这个方法
算法
VALENIAN瓦伦尼安教学设备3 小时前
激光对中仪采购要点
数据库·嵌入式硬件·算法
影寂ldy4 小时前
SQL 事务(Transaction)完整版学习笔记(含转账案例+存储过程+异常捕获)
笔记·sql·学习
Forever Nore5 小时前
LeetCode 1 两数之和
算法·leetcode·职场和发展