当前位置: 首页 > news >正文

leetcode刷题日记——二叉搜索树中第 K 小的元素

[ 题目描述 ]:
在这里插入图片描述
[ 思路 ]:

  • 可以通过中序遍历二叉搜索树获取节点的有序数列,然后通过访问第 k-1 个元素,来获取第 k 小的值
  • 运行如下
    在这里插入图片描述
void getInOrder(struct TreeNode* root,int* inOrder,int* returnSize){if(!root){return ;}getInOrder(root->left,inOrder,returnSize);inOrder[(*returnSize)++]=root->val;getInOrder(root->right,inOrder,returnSize);
}int kthSmallest(struct TreeNode* root, int k) {int inOrder[10000];int returnSize=0;getInOrder(root,inOrder,&returnSize);return inOrder[k-1];
}

[ 官方题解 ]:

  • 方法一:中序遍历,通过栈实现存储,大致思路一致
  • 方法二:记录子树的结点数,令 node 等于根结点,开始搜索。
    • 如果 node 的左子树的结点数 left 小于 k−1,则第 k 小的元素一定在 node 的右子树中,令 node 等于其的右子结点,k 等于 k−left−1,并继续搜索;
    • 如果 node 的左子树的结点数 left 等于 k−1,则第 k 小的元素即为 node ,结束搜索并返回 node 即可;
    • 如果 node 的左子树的结点数 left 大于 k−1,则第 k 小的元素一定在 node 的左子树中,令 node 等于其左子结点,并继续搜索。
  • 方法三:平衡二叉搜索树

相关文章:

  • 从认识AI开始-----AutoEncoder:生成模型的起点
  • Web前端基础
  • ELK日志管理框架介绍
  • XSS(跨站脚本攻击)详解
  • 对称哈希连接实现
  • ECharts 提示框(tooltip)居中显示位置的设置技巧
  • 学习STC51单片机30(芯片为STC89C52RCRC)
  • Jina AI 开源 node-DeepResearch
  • 网络协议通俗易懂详解指南
  • 应用层协议:HTTPS
  • 物联网技术发展与应用研究分析
  • 【AUTOSAR COM CAN】CanTSyn模块技术解析
  • ubuntu显示器未知
  • MobX与响应式编程实践
  • MySQL:分区的基本使用
  • 外贸网站服务器选择Siteground还是Hostinger,哪个更好?
  • 【C/C++】STL实现版本为什么比手写版本高?
  • 在Mathematica中使用Newton-Raphson迭代绘制一个花脸
  • 跳转指令四维全解:从【call/jmp 】的时空法则到内存迷宫导航术
  • 跳跃游戏 dp还是线段树优化
  • 厦门seo网络优化公司/搜索引擎优化要考虑哪些方面?
  • 个人做房产网站有哪些资料/第三方关键词优化排名
  • 做网站须知/seo超级外链
  • 芜湖营销网站建设/千锋教育的官网
  • 怎么用div做网站/超级优化大师下载
  • 淮南市网站开发的方式/推广策略可以分为哪三种