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

LeetCode 230. 二叉搜索树中第 K 小的元素

 题目描述  

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。

示例

示例 1:

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

示例 2:

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

解法

1.辅助数组

解题思路

       创建一个数组,中序遍历链表,把二叉树中的元素依次加入数组中,由于二叉搜索树性质,得到的数组是非减的,这样就可以直接返回第K小的元素。

class Solution {
public: int kthSmallest(TreeNode* root, int k) {vector <int> temp;Helper(root,temp);return temp[k - 1];}void Helper(TreeNode* root,vector <int>& temp){if(!root) return;Helper(root -> left,temp);temp.push_back(root -> val);Helper(root -> right,temp);return;}
};

        时间复杂度O(N),空间复杂度O(N)

2.计数法

解题思路:

        如果要求不占用额外空间,则我们需要设计一个计数器,计数器达到k时,立马返回节点的值。

class Solution {
public: int count = 0;int kthSmallest(TreeNode* root, int k) {int ans;Helper(root,ans,k);return ans;}void Helper(TreeNode* root,int &ans,int k){if(!root) return;Helper(root -> left,ans,k);count ++;if(count == k){ans = root -> val;return;}Helper(root -> right,ans,k);}
};

        时间复杂度O(N),空间复杂度O(1)

http://www.dtcms.com/a/418996.html

相关文章:

  • 优秀的平面设计网站国内做的比较好的旅游网站
  • 设计模式(C++)详解——中介者模式(2)
  • MySQL 8.0 “复杂类型”实战
  • 将0~3V电压分区间放大,减法器的使用
  • 2025年11月PgMP认证报名、考试安排!
  • 百度C++实习生面试题深度解析(下篇)
  • Memblock-2
  • 从芯片发布看未来AI发展趋势与前景
  • 【案例教程】生态碳汇涡度通量数据质量控制、缺失插补、可视化分析、光敏感性分析、温度敏感性分析、数据风浪区分析
  • 牛商网 做的p2p网站公司名称变更通知函
  • 音视频学习(六十七):音视频像素格式
  • XCSSET新变种:专攻苹果macOS用户,实现窃密+勒索
  • 在线教育网站有什么程序做wordpress加标题
  • LeetCode-Hot100 最小栈实现
  • flutter 详细解读
  • 开县做网站汉中网络推广
  • C# TCP - 串口转发
  • 广州 济南网站建设公司 网络服务江苏网站备案流程图
  • Ceph 分布式存储学习笔记(一):介绍、部署与集群配置(上)
  • 先做他个天猫网站产品外观设计图片
  • Accelerate 与 torchrun 分布式训练LLM对比
  • 建设部网站哪里可以报名考监理员优化优化
  • 农家乐怎么做网站上海app开发网站建设
  • 海口建站价格网站建设的物流
  • Leetcode 26. 删除有序数组中的重复项
  • Linux 的文本编辑器vim食用指南
  • 开发实战:从0到1实现Chrome元素截图插件的完整过程
  • ue编辑器视口鼠标消失的问题
  • 【数据结构】多项式的基本运算
  • 在ubuntu下载企业微信