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

提示: 树中的节点数为 n ;1 <= 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;
    }
相关推荐
揽星河..22 分钟前
【C语言】数组
c语言·开发语言·算法
careathers24 分钟前
【数据结构】基于比较的排序算法 - 选择排序
数据结构·算法·排序算法
听风若依30 分钟前
C++模板初阶
c++·算法
纪念 2291 小时前
C++ 算法(模拟)
开发语言·c++·算法
揽星河..1 小时前
【C语言】函数
c语言·算法
zwc32104320551 小时前
Day 2:图像内存、数据类型与stride
c++·人工智能·opencv·算法·计算机视觉
重生之小比特2 小时前
【算法拾光】模拟|提莫攻击 + N 字形变换
算法·模拟
XiYang-DING2 小时前
P4104.环形链表判断
数据结构·链表
東隅已逝,桑榆非晚2 小时前
AVL数实现
c++·笔记·学习·算法
驭渊的小故事2 小时前
LeetCode 算法题解:滑动窗口与数组合并的实战应用
算法·leetcode·职场和发展