leetcode:二叉搜索树中第K小的元素(java,考察点:中序遍历)_java 二叉搜索树中第k小的数-程序员宅基地

技术标签: LeetCode  

题目

给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。

说明:
你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。

示例 1:

输入: root = [3,1,4,null,2], k = 1
   3
  / \
 1   4
  \
   2
输出: 1
示例 2:

输入: root = [5,3,6,2,4,null,null,1], k = 3
       5
      / \
     3   6
    / \
   2   4
  /
 1
输出: 3
进阶:
如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化 kthSmallest 函数?

思路

  1. 题目想求二叉树中序遍历后的有序数列的第k个节点的值是多少
  2. 进行中序遍历,返回第k个点的值

java

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 * int val;
 * TreeNode left;
 * TreeNode right;
 * TreeNode(int x) { val = x; }
 * }
 */
class Solution {

    //确定当前结点数值是否为第K小
    private int index;
    public int kthSmallest(TreeNode root,int k) {
        if (root ==null) {
            return 0;
        }

        //中序遍历
        int leftval = kthSmallest(root.left , k);

        if(k == index){
            return leftval;
        }

        if(k == ++index){
            return root.val;
        }

        return kthSmallest(root.right,k);
    }
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39313597/article/details/89840839

智能推荐

xftp7要继续使用此程序,您必须应用最新的更新,100%已解决._xftp7 要继续使用此程序 您必须应用最新的-程序员宅基地

文章浏览阅读1.9w次,点赞42次,收藏56次。xftp7要继续使用此程序,您必须应用最新的更新,100%已解决.xshell7要继续使用此程序,您必须应用最新的更新,100%已解决._xftp7 要继续使用此程序 您必须应用最新的

有效解决SecureCRT错误:Hostname lookup failed: host not found-程序员宅基地

文章浏览阅读3w次,点赞7次,收藏12次。SecureCRT是一款方便用户在Windows环境下对Linux主机进行管理的软件,一般需要在windows系统上安装SecureCRT客户端,安装及破解过程可参考https://blog.csdn.net/xxujia/article/details/81348848(注意在运行注册机时应使用管理员权限)。相应地,在Linux主机上需要安装ssh2服务,在终端中输入命令:sudo apt-g..._hostname lookup failed: host not found

C#与雷赛运动控制卡的使用(二) - 轴控制系统_c# 运动控制卡编程-程序员宅基地

文章浏览阅读1.3k次,点赞29次,收藏9次。C#是一门面向对象的编程语言,所以在编写马达控制程序的时候也要有面向对象的思维,所以在此我们可以将马达看成是一类对象,而机台上的每个马达就是这个马达类的具体对象。一个简单的类大致包括了字段,属性和方法,需要创建一个马达类,首先得知道马达具备哪些基本的属性,而我们使用马达来实现哪些功能,怎么控制这个马达,就是一些方法。去年写过一篇关于C#实现马达运动控制卡编程的博客,很多小伙伴看了希望共享下代码,后来自己觉得写得不够完善就删掉了,这次准备重新写一篇完善点的,实现代码后续也会上传资源,觉得有用的可以去下载。_c# 运动控制卡编程

面向对象魔术方法_成员有 private 访问,但类有魔术方法 __get-程序员宅基地

文章浏览阅读61次。它们在特定的情况下被触发,都是以双下划线开头,你可以把它们理解为钩子,利用魔术方法可以轻松实现PHP面向对象中重载(Overloading即动态创建类属性和方法)。__set( $property, $value )` 方法用来设置私有属性, 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值。当然,只需要在类里定义__isset()方法,就可以在对象外部利用isset()方法判断某个私有属性是否被设置了。如果参数是公有属性,那么可以利用isset()方法判断属性是否被设置;_成员有 private 访问,但类有魔术方法 __get

unable to connect to 172.20.10.10:5555 解决办法-程序员宅基地

文章浏览阅读1.4w次。adb通过wifi调试Android设备,在连接过程中经常显示以下错误:unable to connect to 172.20.10.10:5555解决办法第一步:Android设备开启USB调试,并且通过USB线连接到电脑。第二步:在终端执行以下命令”adb tcpip 5555“。第三步:在终端执行以下命令”adb c_172.20.10.10

PHPcms V9 任意文件上传漏洞_phpcmsv9漏洞-程序员宅基地

文章浏览阅读5.6k次,点赞2次,收藏5次。之前碰到一个站点,存在目录遍历,看到upload目录下上传了好多php的大马,说明这网站肯定是有漏洞的,看了一下网站指纹,是phpcms的,正好借此网站复现一下此漏洞一丶漏洞简介此漏洞爆出来的时间是2017年4月份左右,时间比较长了,存在任意文件长传,漏洞利用比较简单,危害很大,可以直接前台getshell。二丶影响版本phpcms v9.6.0三丶漏洞分析漏洞利用点是注册的地方,我们来看一下网上常用的一个payload:http://127.0.0.1/index.php._phpcmsv9漏洞

随便推点

ESP8266-01S与PC通过网络助手的测试的AT指令_at+cipstatus=4-程序员宅基地

文章浏览阅读3.5k次,点赞3次,收藏26次。这阵子在学esp8266+stm32的知识,从小白学起,一步一步记录着工具:TTL-usb,esp8266-01s,杜邦线,xcom串口助手如图:串口助手连线:接线的时候要注意接好,我一开始没有接好,芯片会发烫,电压选用3.3vTTL ESP8266 3.3V 3.3V TXD RX RXD TX GND GND 注..._at+cipstatus=4

ribbon基于接口配置超时_Spring cloud 超时及重试配置【ribbon及其它http client】-程序员宅基地

文章浏览阅读990次。开启重试在某些情况下是有问题的,比如当压力过大,一个实例停止响应时,路由将流量转到另一个实例,很有可能导致最终所有的实例全被压垮。说到底,断路器的其中一个作用就是防止故障或者压力扩散。用了retry,断路器就只有在该服务的所有实例都无法运作的情况下才能起作用。这种时候,断路器的形式更像是提供一种友好的错误信息,或者假装服务正常运行的假象给使用者。不用retry,仅使用负载均衡和熔断,就必须考虑到是...

java九大内置对象和四大作用域-程序员宅基地

文章浏览阅读2.5k次,点赞11次,收藏20次。Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。_九大内置对象

动态设置Activity背景图-程序员宅基地

文章浏览阅读6.6k次。一般设置Activity背景都是这样的一段代码:getWindow().getDecorView().setBackgroundResource或getWindow().getDecorView().setBackground这样设置一般是setContentView对应的xml文件根节点没有设置背景,如果跟节点设置了背景属性,那么以上代码设置背景将会无效。原因

程序员的编程、编程的程序员。_编程,程序员-程序员宅基地

文章浏览阅读1.2k次。1、 程序员意味着要编程序。(如果你仅仅想得到一份高薪水的工作,喝喝咖啡就等老板发薪水,我奉劝你还是另找一份更合适的工作,譬如练摊,真的,兄弟,这份工作不适合你) 2、你是学文的还是学理的,编程序也许需要浪漫,但更需要逻辑和严谨。(说坦白点就是,在你没有找到乐趣以前,它很枯燥) 3、你有对新技术追求的热情吗?你有刨根问底的探索精神吗?(热情绝对是最重要的!你仔细思考一下自己的性格适合当程序员吗?) 4、当程序员决不是什_编程,程序员

TensorFlow实战系列10--卷积神经网络简介_卷积神经网络简介及tensorflow搭建可视化网络-程序员宅基地

文章浏览阅读403次。斯 坦 福 大 学(Stanford University) 李 飞 飞(Feifei Li) 教 授 带 头 整理的 ImageNet 是图像识别领域非常有名的数据集。在 ImageNet 中,将近 1500 万图片被关联到了 WordNet 的大约 20000 个名词同义词集上。ImageNet 每年都举办图像识别相关的竞赛(ImageNet Large Scale VisualRecog_卷积神经网络简介及tensorflow搭建可视化网络

推荐文章

热门文章

相关标签