1def kth_smallest(root, k):
2 res = None
3
4 def traverse(node):
5 nonlocal k, res
6 if not node or res is not None:
7 return
8 traverse(node.left)
9 if res is not None: return
10 k -= 1
11 if k == 0:
12 res = node.val
13 return
14 traverse(node.right)
15
16 traverse(root)
17 return res