给定一个二叉搜索树的根节点 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

方法一:用栈的思想

class Solution:def kthSmallest(self,root:TreeNode,k:int)->int:stack = []while True:while root:stack.append(root)root = root.leftroot = stack.pop()k -=1if not k:return root.valroot = root.right

方法二:递归

class Solution:def kthSmallest(self,roor,k):def inorder(r):return inorder(r.left)+[r.val]+inorder(r.right) if r else []return inorder(root)[k-1]

[leetcode] 230.二叉搜索树中的最小树相关推荐

  1. LeetCode 230. 二叉搜索树中第K小的元素(中序遍历)

    文章目录 1. 题目信息 2. 解题 2.1 中序递归 2.2 中序循环写法 1. 题目信息 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以 ...

  2. 73. Leetcode 230. 二叉搜索树中第K小的元素 (二叉搜索树-中序遍历类)

    给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数).示例 1:输入:root = [3,1,4,null,2], k = 1 输出 ...

  3. LeetCode 230. 二叉搜索树中第K小的元素(递归)

    题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 思路 详见链接 代码 c ...

  4. LeetCode 230二叉搜索树中第k小的元素

    思路: ※一.中序遍历,找第k个元素 class Solution { public:vector<int>res;void inorder(TreeNode *root){if(root ...

  5. LeetCode 510. 二叉搜索树中的中序后继 II(查找右子树或者祖父节点)

    文章目录 1. 题目 2. 解题 1. 题目 给定一棵二叉搜索树和其中的一个节点 node ,找到该节点在树中的中序后继. 如果节点没有中序后继,请返回 null . 一个结点 node 的中序后继是 ...

  6. LeetCode 285. 二叉搜索树中的顺序后继(中序遍历)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个二叉搜索树和其中的某一个结点,请你找出该结点在树中顺序后继的节点. 结点 p 的后继是值比 p.val 大的结点中键值最小的结点. 示例 1: 输 ...

  7. LeetCode 501. 二叉搜索树中的众数(中序遍历)

    文章目录 1. 题目 2. 中序遍历 1. 题目 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素). 假定 BST 有如下定义: 结点左子树中所含结点的值小于等 ...

  8. LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)

    1. 题目 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍 ...

  9. 70. Leetcode 701. 二叉搜索树中的插入操作 (二叉搜索树-基本操作类)

    给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同.注意,可能 ...

最新文章

  1. 剑指offer 面试题6:重建二叉树
  2. 如何运用UIControl自定义iOS中的控件
  3. MATLAB:图像的与、或、非、异或逻辑运算(、|、~、xor)
  4. 阿里云技术白皮书_对阿里重磅发布的云原生架构白皮书的初步解读
  5. 表达式求值及转换算法
  6. 个税10% 人群_人群管理如何使我们的搜索质量提高27%
  7. 从下往上看--新皮层资料的读后感 第一部分:皮层细胞
  8. python游戏按键无效_瞬速掌握Python系统管理-调试和分析脚本1-debugging
  9. [Java] 蓝桥杯 BASIC-9 基础练习 特殊回文数
  10. .Net Discovery系列之三 深入理解.Net垃圾收集机制(上)
  11. 区块链学习路线图 初阶+中阶+高阶
  12. python删除过期文件_python 删除过期文件的方法+源码
  13. JeecgBoot 2.1.1 代码生成器AI版本发布,基于SpringBoot+AntDesign的JAVA快速开发平台
  14. java 上位机 socket_通讯编程上位机软件实现(SOCKET)——第二回
  15. 符号“∑”和“Π”的用法。
  16. golang详细知识体系
  17. win10 测试YOLOV4 报错Couldnt open file: yolov4.weights,Couldnt open file: yolov4.cfg(已解决)
  18. ORB-SLAM3 单目惯导ros-system-track
  19. 视频 | 马云:如果有天阿里不在了,我们也要为世界留下这三样
  20. spring boot2.X word转pdf

热门文章

  1. docker学习笔记(二)创建自己的镜像
  2. 一致性 Hash 算法原理总结
  3. 再看Kafka Lag
  4. 英特尔与博雅睿视共同发布SVT-AVS3实时编码器
  5. 《长安十二时辰》背后的文娱大脑:如何提升爆款的确定性?
  6. 2019社交与企业多媒体技术和工具应用趋势
  7. Java内存泄漏、性能优化、宕机死锁的N种姿势
  8. 腾讯计费全面开放,为你而来!
  9. 2021博客之星,请帮忙投上宝贵一票
  10. 如何选择深度学习优化器