美文网首页
230. 二叉搜索树中第K小的元素(medium)

230. 二叉搜索树中第K小的元素(medium)

作者: genggejianyi | 来源:发表于2019-06-20 20:01 被阅读0次

    给定一个二叉搜索树,编写一个函数 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

    • show the code:
    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def kthSmallest(self, root, k):
            """
            :type root: TreeNode
            :type k: int
            :rtype: int
            """
            res = []
            self.sort(res,root)
            return res[k-1]
        def sort(self,res,node):
            if not node:
                return 
            self.sort(res,node.left)
            res.append(node.val)
            self.sort(res,node.right)
    
    • 此题实际上是考察的二叉树的中序遍历,直接将二叉搜索树的所有元素从小到大排序后放在一个数组中,返回k-1位置上的元素即可。
    • 如何将二叉搜索树的元素从小到大放到数组里,对这个二叉搜索树中序遍历即可。

    相关文章

      网友评论

          本文标题:230. 二叉搜索树中第K小的元素(medium)

          本文链接:https://www.haomeiwen.com/subject/rwqsqctx.html