BST中最小的元素

时间:2015-10-23 08:28:54

标签: python error-handling binary-search-tree binary-search

我正在尝试使用leetcode问题link来查找二叉搜索树中的第k个最小元素。我认为我写的解决方案是正确的,但不知何故它没有通过所有测试用例,我无法弄清楚我哪里出错了。以下是我的解决方案:

class Solution(object):
    def kthSmallest(self, root, k, array=[]):
        """
        :type root: TreeNode
        :type k: int
        :rtype: int
        """
        if root.left:
            return self.kthSmallest(root.left, k, array)
        array.append(root.val)
        if len(array) == k:
            return array[-1]
        if root.right:
            return self.kthSmallest(root.right, k, array)

有人能告诉我我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

<块引用>

BST 中第 K 个最小的元素

这是解决问题的算法:

  1. 编写一个返回 BST 节点的辅助方法。
  2. 在辅助方法中,按顺序遍历 BST 节点,沿途递减 k。
  3. 当 k 达到 1 时,将当前 BST 节点返回到原来的方法。
  4. 原始方法应返回此节点内的值。

Geeks for Geeks 提供有关 The Kth Smallest Element in a BST problem 的更多信息。