写点什么

[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))}
复制代码


用户头像

Dead or Alive. 生存战斗是知识的源泉! 2018.11.08 加入

我是一名SRE哨兵,目前是好大夫基础架构部高级工程师。专注于 SRE,微服务、中间件的稳定性和可用性建设,整体负责好大夫服务治理云平台的设计和搭建!

评论

发布
暂无评论
[Day39]-[二叉树] 二叉搜索树中第K小的元素_LeetCode_方勇(gopher)_InfoQ写作社区