leetcode230.二叉搜索树中第k小的元素

标签:二叉搜索树;中序遍历

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

示例 1:

复制代码
输入:root = [3,1,4,null,2], k = 1
输出:1

示例 2:

复制代码
输入:root = [5,3,6,2,4,null,null,1], k = 3
输出:3

提示: 树中的节点数为 n1 <= k <= n <= 104

**思路:**利用二叉搜索树中序遍历序列是升序序列性质

java 复制代码
    int i=0;
    int ret;
    public int kthSmallest(TreeNode root, int k) {
        inorderTraversal(root,k);
        return ret;
    }
    public void inorderTraversal(TreeNode root,int k) {
        if(root==null)
            return;
        inorderTraversal(root.left,k);
        i++;
        if(i==k)
            ret=root.val;
        inorderTraversal(root.right,k);
        return;
    }
相关推荐
徐*红3 分钟前
linkedList add方法源码分析
数据结构
阳阳大魔王12 分钟前
动态分区存储管理
开发语言·笔记·python·算法·操作系统
<但凡.22 分钟前
题海拾贝:力扣 141.环形链表
算法·leetcode·链表
Felven37 分钟前
B. Robin Hood and the Major Oak
开发语言·c++·算法
醇醛酸醚酮酯1 小时前
数据结构的高频题
数据结构·算法·哈希算法
百川Cs1 小时前
【Go基础】Go算法常用函数整理
开发语言·算法·golang
李宥小哥1 小时前
架构14-资源与调度
算法·贪心算法·架构
封印师请假去地球钓鱼2 小时前
AI大模型学习笔记|多目标算法梳理、举例
人工智能·算法
lover_putter2 小时前
c++三维移动射击
开发语言·c++·算法
论迹2 小时前
【力扣】155. 最小栈(Java版)
java·开发语言·数据结构·算法