【leetcode】230: 二叉搜索樹中第K小的元素

 

 這個題目利用二叉搜索樹的性質,一下子就簡單得令人髮指了,第k小的元素,正好就是對二叉搜索樹進行中序遍歷時的第k個元素,因此我們直接使用中序遍歷,時間複雜度O(n),即可得到答案,代碼如下:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def kthSmallest(self, root: Optional[TreeNode], k: int) -> int:
        ls=[]
        def DFS(root,ls):
            if root==None:
                return 
            DFS(root.left,ls)
            ls.append(root.val)
            DFS(root.right,ls)
        
        DFS(root,ls)
        return ls[k-1]

得解!

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