当前位置: 首页 > article >正文

LeetCode [中等] 二叉树中序—二叉搜索树中第K小的元素

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

二叉搜索树具有如下性质:

  • 结点的左子树只包含小于当前结点的数。

  • 结点的右子树只包含大于当前结点的数。

  • 所有左子树和右子树自身必须也是二叉搜索树。

二叉树的中序遍历即按照访问左子树——根结点——右子树的方式遍历二叉树;在访问其左子树和右子树时,我们也按照同样的方式遍历;直到遍历完整棵树。

因为二叉搜索树和中序遍历的性质,所以二叉搜索树的中序遍历是按照键增加的顺序进行的。于是,我们可以通过中序遍历找到第 k 个最小元素。

public class Solution {
    public int KthSmallest(TreeNode root, int k) {
        List<int> res = new List<int>();
        Stack<TreeNode> stack = new Stack<TreeNode>();
        while(stack.Count > 0 || root != null)
        {
            while(root != null)
            {
                stack.Push(root);
                root = root.left;
            }
            root = stack.Pop();
            res.Add(root.val);
            root = root.right;
        }
        return res[k - 1];
    }
}


http://www.kler.cn/news/156682.html

相关文章:

  • 【wvp】测试记录
  • 百度收录批量查询工具,免费SEO优化排名工具
  • 【有ISSN、ISBN号!往届均已完成EI检索】第三届电子信息工程、大数据与计算机技术国际学术会议(EIBDCT 2024)
  • Java BIO、NIO、AIO 有什么区别?
  • git merge和git rebase
  • 原生input实现上传文件
  • Java | 数据一致性校验遇到的时间序列化格式不一致问题如何解决?
  • MySQL 的 NULL 是怎么存储的?
  • 17:00面试,17:06就出来了,问的问题有点变态。。
  • 四、Zookeeper节点类型
  • 【UGUI】sprite精灵的创建与编辑
  • vue3+ts项目中导入组件时报错has no default export
  • iOS代码安全加固利器:深入探讨字符串和代码混淆器的作用
  • Linux-chrpath指令
  • CTF特训日记day3
  • 【Linux】cp 命令使用
  • PHP数组面试题
  • LeetCode 232.用栈实现队列
  • 9、Qt使用随机验证码
  • SASE,移动办公的安全防御小能手
  • ES如何提高召回率之【词干提取】
  • 『PyTorch学习笔记』分布式深度学习训练中的数据并行(DP/DDP) VS 模型并行
  • android13(T) 客制化预置语言列表
  • XunSearch 讯搜 error: storage size of ‘methods_bufferevent’ isn’t known
  • 软考初级、中级、高级怎么选?
  • 04-数据库操作对象Statement对象和PreparedStatement对象的区别,SQL注入的优缺点
  • yolov5实现多图形识别和图像训练
  • 多线程详解1-互斥锁,读写锁,生产者消费者模型
  • docker 如何在容器内重启 php
  • 数据管理系统-week9-事务处理程序简介