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

黄岛网站制作建官网公司地址

黄岛网站制作,建官网公司地址,wordpress 移动端模板主题,网站ftp密码怎么修改目录 题目描述:230. 二叉搜索树中第K小的元素(中等)题目接口解题思路代码 PS: 题目描述:230. 二叉搜索树中第K小的元素(中等) 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你…

目录

  • 题目描述:230. 二叉搜索树中第K小的元素(中等)
    • 题目接口
    • 解题思路
    • 代码
  • PS:

题目描述:230. 二叉搜索树中第K小的元素(中等)

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

LeetCode做题链接:LeetCode-两数之和

示例 1:
在这里插入图片描述

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

示例 2:
在这里插入图片描述

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

提示:

树中的节点数为 n 。
1 <= k <= n <= 104
0 <= Node.val <= 104

进阶: 如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化算法?

题目接口

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int kthSmallest(TreeNode root, int k) {}
}

解题思路

  1. 创建一个ArrayList用于存储中序遍历的结果。中序遍历是一种二叉树的遍历方式,顺序为左子树-根节点-右子树。这种遍历方式可以得到一个升序的序列。
  2. 定义一个方法kthSmallest,输入参数为二叉树的根节点和整数k,返回二叉树中第k小的元素。在这个方法中,首先调用dfs方法对二叉树进行中序遍历,将结果存储在list中。然后返回list中第k-1个元素,因为数组下标从0开始,而题目要求的k是从1开始的。
  3. 定义一个方法dfs,输入参数为二叉树的节点,递归地对该节点的左子树和右子树进行中序遍历。在这个方法中,首先判断当前节点是否为空,如果为空则直接返回。然后递归地对左子树进行中序遍历,将遍历得到的结果存储在list中。接着将当前节点的值添加到list中,最后递归地对右子树进行中序遍历。

通过这种方式,我们可以在O(n)的时间复杂度内找到二叉搜索树中第k小的元素,其中n是二叉树的节点数。

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {// 创建一个ArrayList用于存储中序遍历的结果ArrayList<Integer> list = new ArrayList<>();// 定义一个方法,输入参数为二叉树的根节点和整数k,返回二叉树中第k小的元素public int kthSmallest(TreeNode root, int k) {// 先对二叉树进行中序遍历,将结果存储在list中dfs(root);// 返回list中第k-1个元素,因为数组下标从0开始,而题目要求的k是从1开始的return list.get(k - 1);}// 定义一个方法,输入参数为二叉树的节点,递归地对该节点的左子树和右子树进行中序遍历public void dfs(TreeNode root) {// 如果当前节点为空,直接返回if (root == null) {return;}// 递归地对左子树进行中序遍历dfs(root.left);// 将当前节点的值添加到list中list.add(root.val);// 递归地对右子树进行中序遍历dfs(root.right);}
}

PS:

感谢您的阅读!如果您觉得本篇文章对您有所帮助,请给予博主一个喔~

http://www.yayakq.cn/news/828682/

相关文章:

  • 番禺制作网站报价如何仿制国外网站
  • 网站空间不足电影采集网站怎么做
  • 无锡加盟网站建设网上商城什么意思
  • 网站建设规划书感受django网站开发规范
  • 怎么提高网站的收录量企业形象设计包括哪些方面
  • 南充建设公司网站wordpress导航模板下载地址
  • 新公司网站建设方案北京网站建设有限公司
  • 做维修广告效最好是哪个网站吗上线了相同网站
  • wordpress树形目录烟台网站排名优化公司哪家好
  • wordpress自动回复插件搜索引擎优化培训免费咨询
  • 苏州工业园区一站式服务中心环保设备网站怎么做
  • 杭州建站程序福州微信公众号开发
  • 建设部2018年工作要点网站网站开发工作进度表
  • 中山建设网站官网刷网站关
  • 网站建设使用的什么软件梁志天室内设计公司官网
  • 石家庄营销型网站建设费用小程序app开发
  • 医院网站如何建立长沙做网站好的公司有哪些
  • 网站策划书最后一步怎么做小程序开发需求方案
  • seo网站设计招聘想做一个自己设计公司的网站怎么做
  • 建设网站的一般步骤是上海的室内设计公司
  • 网站服务器维护 价目表杭州公司注册虚拟地址
  • 做原油看哪个网站企业网站建设成本
  • seo教程排名第一网站改版需要注意哪些seo问题
  • 建网站盈利营销型网站建设口碑好
  • 品牌网站建设精湛磐石网络建设部网站官网考试
  • 宁波网站制作维护陕西网站备案 多久
  • 乌兰察布市建设工程造价网站杭州市建设信用网官网
  • 广州网站关键词排名建立公司官网
  • 阳江市住房和城乡规划建设局网站南通网站建设哪家好
  • 做实体识别的网站四川新正路桥建设工程有限公司网站