【力扣】230:二叉搜索樹中第K小的元素 | 中序遍歷

題目描述

給定一個二叉搜索樹,編寫一個函數 kthSmallest 來查找其中第 k 個最小的元素。

說明:
你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜索樹元素個數。

算法思路

對二叉搜索樹寶具:中序遍歷。

這裏用self.k 作爲遞歸的結束條件,找到目標值時self.k=0,結束遞歸。

class Solution:

    def kthSmallest(self, root: TreeNode, k: int) -> int:
        self.k=k
        self.res=-1
        def helper(root):
            if self.k:
                if not root:return
                helper(root.left)
                self.k-=1
                if self.k==0:self.res=root.val
                helper(root.right)
        helper(root)
        return self.res

執行用時 :56 ms, 在所有 Python3 提交中擊敗了88.25%的用戶
內存消耗 :18 MB, 在所有 Python3 提交中擊敗了7.14%的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章