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

科技中介如何高效匹配技术供需?.docx 科技中介如何高效匹配技术供需? 立即下载

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

给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。

说明:
你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。

示例 1:

输入: root = [3,1,4,null,2], k = 1
   3
  / \
 1   4
  \
   2
输出: 1

示例 2:

输入: root = [5,3,6,2,4,null,null,1], k = 3
       5
      / \
     3   6
    / \
   2   4
  /
 1
输出: 3

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法:
1:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def kthSmallest(self, root: TreeNode, k: int) -> int:
        list=[]
        def add(node):
            nonlocal list
            if not node:
                return 
            else:
                list.append(node.val)
                add(node.left)
                add(node.right)
        add(root)
        
        return sorted(list)[k-1]

2:

class Solution:
    def kthSmallest(self, root: TreeNode, k: int) -> int:
        def Count(root: TreeNode) -> int:
            if not root:
                return 0
            return Count(root.left)+Count(root.right)+1
        leftCount = Count(root.left)
        if leftCount == k-1:
            return root.val 
        elif leftCount > k-1:
            return self.kthSmallest(root.left,k)
        else:
            return self.kthSmallest(root.right,k-leftCount-1)
!qhyb.rar 当 CAD 缺失对应字体时,图纸文字会显示异常,出现乱码、问号。将下载好的字体文件复制到 AutoCAD 的 Fonts 文件夹中,即可恢复正常显示。 立即下载

相关推荐

政府科技管理部门如何实现科技成果高效转化?.docx

政府科技管理部门如何实现科技成果高效转化?

【中等】力扣算法题解析LeetCode230二叉搜索树中第K小的元素

二叉搜索树(BST)中查找第k小的元素。 解题思路:利用BST中序遍历为升序的特性,通过迭代方式实现中序遍历,遍历过程中计数,当计数达到k时立即返回当前节点值,避免完整遍历。

ylumwd的博客 819

librdkafka Windows 包(可直接使用)

librdkafka/win ├─ bin/ # 全部运行时dll + pdb调试符号 + plugins插件目录 ├─ include/ # 头文件 rdkafka.h └─ lib/ # .lib静态导入库(链接阶段使用)

力扣第230题“二叉搜索树中第K小的元素

本文详细解读了力扣第230题“二叉搜索树中第K小的元素”,通过使用中序遍历的方法高效地解决了这一问题,并提供了详细的解释和模拟面试问答。希望读者通过本文的学习,能够在力扣刷题的过程中更加得心应手。

10年数据\经营分析经验,现任大厂数据分析负责人 1199

leetcode 230二叉搜索树中第K小的元素(python)

腾讯精选练习(50 题)Day42 || leetcode 230二叉搜索树中第K小的元素(python)

nanashi_F的博客 332

230. 二叉搜索树中第 K 小的元素【 力扣(LeetCode) 】

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。进阶:如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化算法

yyh520025的博客 517

【每日一题】力扣230.二叉搜索树中第K小的元素

文章目录题目解题思路代码(C++)中序遍历优化总结 题目 题目链接:力扣230.二叉搜索树中第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 &l

倾心之作 1940

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

LeetCode 230二叉搜索树中第k小的元素题目描述解题思路代码实现总结 题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 解题思路 利用BST在中序遍历下,就是按从小到大顺序排列的原则。对BST进行中序遍历,我们只需检索第k个元素即为第k小的元素!!! 代码实现 ...

香农三定律的博客 225

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

LeetCode230题要求在一个二叉搜索树(BST)中找到第k小的元素。BST的性质使得中序遍历(左-根-右)能够得到一个升序序列,因此可以通过中序遍历来找到第k小的元素。题目提供了三种解法:递归中序遍历、迭代中序遍历和分治法。递归和迭代方法的时间复杂度为O(n),空间复杂度为O(h),其中n是节点数,h是树的高度。分治法的时间复杂度为O(h),空间复杂度为O(h)。代码实现包括C#和Python版本,分别展示了这三种方法的实现细节。

qq_40263592的博客 817

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

Leetcode230. 二叉搜索树中第K小的元素 class Solution { public int kthSmallest(TreeNode root, int k) { List<Integer> result = new ArrayList<>(); dfs(result, root); if (result.isEmpty()) { return -1; }

Loser_you的博客 203

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

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

weixin_45799371的博客 421

国有企业如何推动科技创新产业升级融合?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新产业创新智能化发展。

科技中介服务如何实现数字化升级?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新产业创新智能化发展。

兄弟MFC-J2330DW 中文维修手册

兄弟MFC-J2330DW 中文维修手册

CesiumForUnitySamples-v1.25.1

Cesium for Unity 是一个官方插件,它将 Cesium 强大的3D 地理空间平台能力深度集成到了 Unity 引擎中。简单来说,它让你能在 Unity 里创建出一个高精度的真实地球,并加载和探索全球范围内的海量地理数据

政府科技管理部门如何降低平台建设成本?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新产业创新智能化发展。

sam l part3 niubi666

sam l part3 niubi666

内窥镜摄像系统,全球前10强生产商排名及市场份额.docx

内窥镜摄像系统,全球前10强生产商排名及市场份额

上一篇: LeetCode 124 二叉树的最大路径和
下一篇: LeetCode 235. 二叉搜索树的最近公共祖先
Sundm@lhq
博客等级 码龄8年 60粉丝 58原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值