Leetcode230. 二叉搜索树中第K小的元素

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

解题思路:中序遍历

代码如下:

java 复制代码
public int kthSmallest(TreeNode root, int k) {
        Stack<TreeNode> s = new Stack<>();
        while(root != null || !s.isEmpty()){
            while(root != null){
                s.push(root);
                root = root.left;
            }
            root = s.pop();
            k--;
            if(k == 0){
                break;
            }
        root = root.right;
           
        }
        return root.val;
      
    }
    
相关推荐
add45a3 小时前
C++中的智能指针详解
开发语言·c++·算法
做科研的周师兄3 小时前
巴音河中下游灌溉草地空间分布数据集(2020年)
大数据·人工智能·算法·机器学习·数据挖掘·聚类
闻缺陷则喜何志丹3 小时前
【分治法 前缀和】P8572 [JRKSJ R6] Eltaw|普及+
c++·算法·前缀和·洛谷·分治法
纤纡.3 小时前
矿物识别分类:8 种机器学习算法对比与实战(平均值填充数据集)
python·深度学习·算法·机器学习
ulias2123 小时前
函数栈帧的创建和销毁
开发语言·数据结构·c++·windows·算法
少许极端3 小时前
算法奇妙屋(三十五)-贪心算法学习之路 2
学习·算法·贪心算法
代码探秘者3 小时前
【算法篇】3.位运算
java·数据结构·后端·python·算法·spring
Aaswk3 小时前
回溯算法的本质理解
c语言·算法·leetcode·力扣·剪枝
迷海3 小时前
力扣原题《分发糖果》,采用二分原则,纯手搓,待验证
c++·算法·leetcode
玛卡巴卡ldf3 小时前
【LeetCode 手撕算法】(普通数组)53-最大子数组和、56-合并区间、189-轮转数组、238-除了自身以外数组的乘积
数据结构·算法·leetcode