leetcode 之 Kth Smallest Element in a BST
2016-06-02 11:14
453 查看
题目描述:
Given a binary search tree, write a function
Note:
You may assume k is always valid, 1 ≤ k ≤ BST's total elements.
给定一棵二叉查找树, 找到第k个小的元素。
思路,利用二叉查找树的特性,其左子树的元素小于根节点,右子树的元素大于根节点。当采用中序遍历时,可以得到从小到大的排列。
因此采用中序遍历代码如下:
Given a binary search tree, write a function
kthSmallestto find the kth smallest element in it.
Note:
You may assume k is always valid, 1 ≤ k ≤ BST's total elements.
给定一棵二叉查找树, 找到第k个小的元素。
思路,利用二叉查找树的特性,其左子树的元素小于根节点,右子树的元素大于根节点。当采用中序遍历时,可以得到从小到大的排列。
因此采用中序遍历代码如下:
class Solution(object): def kthSmallest(self, root, k): """ :type root: TreeNode :type k: int :rtype: int """ if not root: return -1 res = [] ls = [] res.append(root) while len(ls) != k: while root.left: root = root.left res.append(root) root = res.pop() ls.append(root.val) if root.right: root = root.right res.append(root) return ls[-1]
相关文章推荐
- POJ3264 Balanced Lineup(线段树静态)
- 007_Android Studio 2.1.0 导入Android Studio 项目 步骤详解(附详细截图)
- DELPHI 利用WINRRA 实现压缩解压
- LTS任务调度使用
- 求裴波那契数列的第n项---递归+改进
- 【swift基础】07函数
- 获取mac地址
- java按行读取文件,可做模板(简单易懂),大家一起学习
- [BZOJ3295][Cqoi2011]动态逆序对(分块重建)
- Makefile常用万能模板(包括静态链接库、动态链接库、可执行文件)
- Eclipse:The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path
- sql查询最大id
- opencv for ios使用问题
- like '%%'
- 【swift基础】06字典
- [MFC开发]CInternetSession的简单使用demo
- Java NIO系列教程(九) ServerSocketChannel
- Hadoop的InputFormats和OutputFormats
- 收藏一个Yaf教程
- 03-树3 Tree Traversals Again