hot100-41二叉搜索树中第K小的元素

一、题目

给定一个二叉搜索树的根节点root,和一个整数k,找出其中第k小的元素。

二、思路

1、二叉搜索树找第k小的数,中序遍历是升序数组,访问到第k个节点时,它的值就是答案。

三、代码

java 复制代码
class Solution {
    int res = 0,count;
    public int kthSmallest(TreeNode root, int k) {
        if(root == null) return 0;
        kthSmallest(root.left,k);
        if(++count == k) res = root.val;
        kthSmallest(root.right,k);
        return res;
    }
}

这个代码,找到了第k小的值仍然会遍历整个树。

下面是优化的代码

java 复制代码
class Solution {
    private int count = 0;
    private int result = 0;

    public int kthSmallest(TreeNode root, int k) {
        inorder(root, k);
        return result;
    }

    private void inorder(TreeNode node, int k) {
        if (node == null || count >= k) return; 

        inorder(node.left, k);

        count++;
        if (count == k) {
            result = node.val;
            return; 
        }

        inorder(node.right, k);
    }
}
相关推荐
阳明山水9 分钟前
因果嵌入与流水线范式的本质差异
人工智能·深度学习·算法·机器学习·架构
小静AI工程实验室13 分钟前
MD5 算法详解:哈希原理、标准向量、输入编码与安全边界
算法·安全·哈希算法·md5
小许同学记录成长15 分钟前
几何体编辑算法
qt·算法
土星云SaturnCloud23 分钟前
HRNet-pose 算法全解析:从高分辨率网络原理到土星云 SE110S 边缘部署实战
服务器·人工智能·算法·ai·边缘计算
bksczm26 分钟前
零基础面试题1
jvm·数据结构·算法
m0_7393128730 分钟前
【自动驾驶与机器人技术】之惯性导航与组合导航
算法·机器人·自动驾驶
驭渊的小故事37 分钟前
牛客网算法刷题笔记:哈希表、贪心与动态规划实战
笔记·算法·散列表
careathers1 小时前
【数据结构】二叉树
数据结构·算法
Omics Pro2 小时前
空间组学!医学代谢显微工具
数据库·人工智能·算法·机器学习·自然语言处理
Coder-magician2 小时前
《代码随想录》刷题打卡day44:图论-part02
算法·深度优先·图论