题目描述:
给定一棵二叉搜索树,请找出其中的第k小的结点。例如,(5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
分析:
二叉搜索树的根节点大于左子树节点,小于右子树节点,所以二叉搜索树中第k大的节点就是二叉搜索树中序遍历的第k个节点。
示例代码:
class TreeNode:
def ___init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def KthNode(self, pRoot, k):
retlist = []
def midOrder(pRoot):
if pRoot == None:
retrun None
midOrder(pRoot.left)
retlist.append(pRoot)
midOrder(pRoot.right)
midOrder(pRoot)
if len(retlist) < k or k < 1:
return None
return retlist[k - 1]
视频链接:https://www.bilibili.com/video/av64288683?p=47
博客围绕在二叉搜索树中找出第k小的结点展开。指出二叉搜索树根节点大于左子树、小于右子树,其第k大节点即中序遍历的第k个节点,还给出示例代码及相关视频链接。

被折叠的 条评论
为什么被折叠?



