博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
230. Kth Smallest Element in a BST
阅读量:5121 次
发布时间:2019-06-13

本文共 1070 字,大约阅读时间需要 3 分钟。

Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.

Note:

You may assume k is always valid, 1 ≤ k ≤ BST's total elements.

Example 1:

Input: root = [3,1,4,null,2], k = 1

3
/ 1 4
2
Output: 1

Example 2:

Input: root = [5,3,6,2,4,null,null,1], k = 3

5
/ 3 6
/ 2 4
/
1
Output: 3

Follow up:

What if the BST is modified (insert/delete operations) often and you need to find the kth smallest frequently? How would you optimize the kthSmallest routine?

# Definition for a binary tree node.class TreeNode:    def __init__(self, x):        self.val = x        self.left = None        self.right = Noneclass Solution:    def kthSmallest(self, root, k):        """        :type root: TreeNode        :type k: int        :rtype: int        """        ans = []        def inorder(root):            if root.left:                inorder(root.left)            ans.append(root.val)            if root.right:                inorder(root.right)        inorder(root)        return ans[k-1]

转载于:https://www.cnblogs.com/bernieloveslife/p/9805701.html

你可能感兴趣的文章
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
【转】 FPGA设计的四种常用思想与技巧
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>