[Day39]-[二叉树] 二叉搜索树中第 K 小的元素
作者:方勇(gopher)
- 2022 年 5 月 10 日
本文字数:456 字
阅读完需:约 1 分钟
230. 二叉搜索树中第K小的元素
给定一个二叉搜索树的根节点
root,和一个整数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
复制代码
题解:
func TestKthSmallest(t *testing.T) { array := []int{1, 2, 3, 4, 5} var buildTree func(left, right int) *TreeNode buildTree = func(left, right int) *TreeNode { // 构建一颗二叉树 if left > right { return nil }
mid := (left + right) >> 1 return &TreeNode{ array[mid], buildTree(left, mid-1), buildTree(mid+1, right), } } root := buildTree(0, len(array)-1) var list []int var k = 3 var dfs func(root *TreeNode) int dfs = func(root *TreeNode) int { if root != nil { dfs(root.Left) list = append(list, root.Val) if len(list) == k { return root.Val } dfs(root.Right) } return -1 }
t.Log(dfs(root))}复制代码
划线
评论
复制
发布于: 刚刚阅读数: 7
方勇(gopher)
关注
Dead or Alive. 生存战斗是知识的源泉! 2018.11.08 加入
我是一名SRE哨兵,目前是好大夫基础架构部高级工程师。专注于 SRE,微服务、中间件的稳定性和可用性建设,整体负责好大夫服务治理云平台的设计和搭建!










评论