203 字
1 分钟
LeetCode-230.二叉搜索树中第 K 小的元素
二叉树
给定一个二叉搜索树的根节点
root,和一个整数k,请你设计一个算法查找其中第k小的元素(k从 1 开始计数)。
示例 1:
![]()
输入:root = [3,1,4,null,2], k = 1输出:1示例 2:
![]()
输入:root = [5,3,6,2,4,null,null,1], k = 3输出:3
递归的解法
思路:只要知道二叉搜索树进行中序遍历,得到的结果一定是一个「严格递增」的有序序列就很简单了
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func kthSmallest(root *TreeNode, k int) int { res := []int{}
var inorder func(*TreeNode) inorder = func(node *TreeNode){ if node == nil { return }
inorder(node.Left)
res = append(res, node.Val)
inorder(node.Right) }
inorder(root) return res[k-1]} LeetCode-230.二叉搜索树中第 K 小的元素
https://sheep44044.github.io/posts/算法/二叉树/leetcode-230二叉搜索树中第-k-小的元素/