내가 생각한 방법은 인오더 traversal 을 해서 정렬시키면 크기가 작은것부터 큰것으로 배열될것이고, k번째 큰 원소값을 리턴하는것이므로 큰것부터 작은것으로 재배열시켜 k-1번째로 리턴하면되는것이다. 이방법외에는 다른 방법이 생각 나지 않았다.
# This is an input class. Do not edit.
class BST:
def __init__(self, value, left=None, right=None):
self.value = value
self.left = left
self.right = right
def inOrderTraversalList(tree, result):
if not tree:
return result
inOrderTraversalList(tree.left, result)
result.append(tree.value)
inOrderTraversalList(tree.right, result)
print(result)
return result
def findKthLargestValueInBst(tree, k):
# Write your code here.
finalResult = inOrderTraversalList(tree, [])
finalResult.reverse()
return finalResult[k-1]