1、题目描述
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。
示例 1:
输入:root = [3,1,4,null,2], k = 1 输出:1
2、初始思路
2.1 思路
使用中序遍历(左根右)进行遍历,遍历结果为从小到大的排序,进而可以输出第k小的元素。
# 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:
result = []
def fore(node):
if not node:
return
fore(node.left)
result.append(node.val)
fore(node.right)
fore(root)
return result[k-1]