Given A binary search tree, write a function to kthSmallest
find the k-th smallest element in it.
Note:
You may assume k are always valid, 1≤k≤bst's total elements.
Follow up:
What if the BST are modified (Insert/delete operations) often and you need to find the kth smallest frequently? How would optimize the Kthsmallest routine?
#Definition for a binary tree node.#class TreeNode (object):#def __init__ (self, x):#self.val = x#self.left = None#self.right = Noneclasssolution (object):defkthsmallest (self, root, K):""": Type Root:TreeNode:type k:int:rtype:int""" # Left Firstnode =root Nodes=[] n=0 whilenode:nodes.append (node) node=Node.left whileNodes:node= Nodes.pop ()#min Valn + = 1ifn = =K:returnnode.val Node=Node.right whilenode:nodes.append (node) node=Node.leftreturnNone
Kth smallest Element in a bst--iterative nature: a=xx1 while some_condition:a=xx2