Python BST中的第k个最小元素
我在尝试一个leetcode问题-。我认为我所写的解决方案是正确的,但它并没有通过所有的测试用例,我也无法找出哪里出了问题。以下是我的解决方案:Python BST中的第k个最小元素,python,binary-search-tree,binary-search,Python,Binary Search Tree,Binary Search,我在尝试一个leetcode问题-。我认为我所写的解决方案是正确的,但它并没有通过所有的测试用例,我也无法找出哪里出了问题。以下是我的解决方案: class Solution(object): def kthSmallest(self, root, k, array=[]): """ :type root: TreeNode :type k: int :rtype: int &q
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)
有人能告诉我我的代码出了什么问题吗
BST中的第k个最小元素
下面是一个解决问题的算法:
编写一个返回BST节点的助手方法。
在helper方法中,按顺序遍历BST节点,沿路径递减k。
当k达到1时,将当前BST节点返回到原始方法。
然后,原始方法应返回此节点内的值。
Geeks for Geeks有更多关于的信息。使用列表文字作为默认参数数组=[]是一个常见的问题。定义函数时创建一次数组,然后在未显式传递数组的每个函数调用中使用相同的数组引用。可能与此有关。我不这么认为,因为我使用可视化编辑器运行了一些输入,并且工作正常。