leetcode230 二叉搜索树中第K小的元素

题目

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。

示例

输入:root = [5,3,6,2,4,null,null,1], k = 3

输出:3

解析

这道题应该是能做出来的,首先二叉搜索树的中序遍历是递增的,那就在此基础上直接数K个树就好了

go 复制代码
/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func kthSmallest(root *TreeNode, k int) int {
	ans := 0
	if root == nil || k <= 0 {
		return ans
	}
	cur := root
	stack := list.New()
	for cur != nil || stack.Len() > 0 {
		if cur != nil {
			stack.PushBack(cur)
			cur = cur.Left
		} else {
			cur = stack.Remove(stack.Back()).(*TreeNode)
			k--
			if k == 0 {
				return cur.Val
			}
            cur = cur.Right // 大意了,这一行记错了,记成pushback了
		}
	}
	return ans
}
相关推荐
能源系统预测和优化研究13 分钟前
【原创代码改进】考虑共享储能接入的工业园区多类型负荷需求响应经济运行研究
大数据·算法
yoke菜籽27 分钟前
LeetCode——三指针
算法·leetcode·职场和发展
小高不明1 小时前
前缀和一维/二维-复习篇
开发语言·算法
bin91531 小时前
当AI优化搜索引擎算法:Go初级开发者的创意突围实战指南
人工智能·算法·搜索引擎·工具·ai工具
曹牧2 小时前
Java:Math.abs()‌
java·开发语言·算法
CoovallyAIHub3 小时前
纯视觉的终结?顶会趋势:不会联觉(多模态)的CV不是好AI
深度学习·算法·计算机视觉
CoovallyAIHub3 小时前
一文读懂大语言模型家族:LLM、MLLM、LMM、VLM核心概念全解析
深度学习·算法·计算机视觉
范纹杉想快点毕业4 小时前
嵌入式C语言实战开发详解
linux·运维·算法
闲看云起4 小时前
LeetCode day3-最长连续序列
算法·leetcode
随意起个昵称4 小时前
【题解学习】序列题
学习·算法