二叉搜索树的第k个节点
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
= =一看就想到中序遍历
public class Solution {
TreeNode KthNode(TreeNode pRoot, int k)
{
if(pRoot==null||k==0) {
return null;
}
ArrayList<TreeNode> list = new ArrayList<>();
list=inOrder(list, pRoot);
//要注意这个地方越界
if(k>list.size()) {
return null;
}
return list.get(k-1);
}
public ArrayList<TreeNode> inOrder(ArrayList<TreeNode> list,TreeNode pRoot){
if(pRoot==null) {
return list;
}
if(pRoot.left!=null) {
list=inOrder(list, pRoot.left);
}
list.add(pRoot);
if(pRoot.right!=null) {
list=inOrder(list, pRoot.right);
}
return list;
}
public static void main(String[] args) {
TreeNode n1 = new TreeNode(8);
TreeNode n2 = new TreeNode(6);
TreeNode n3 = new TreeNode(10);
TreeNode n4 = new TreeNode(5);
TreeNode n5 = new TreeNode(7);
TreeNode n6 = new TreeNode(9);
TreeNode n7 = new TreeNode(11);
n1.left=n2;
n1.right=n3;
n2.left=n4;
n2.right=n5;
n3.left=n6;
n3.right=n7;
new Solution().KthNode(n1, 1);
}
}
二叉搜索树的第k个节点的更多相关文章
- 力扣 - 剑指 Offer 54. 二叉搜索树的第k大节点
题目 剑指 Offer 54. 二叉搜索树的第k大节点 思路1 二叉搜索树的特性就是中序遍历结果为递增序列,而题目要求的是第 k 大节点,所以就应该是要遍历结果为降序, 按照先遍历左子树.输出节点.遍 ...
- 剑指 Offer 54. 二叉搜索树的第k大节点
题目描述 给定一棵二叉搜索树,请找出其中第k大的节点. 示例1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 输出: 4 示例2: 输入: root ...
- 二叉搜索树的第K大节点
题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点. 分析 对二叉搜索树进行逆向中序遍历(先右再左),则遍历序列是降序排序的,因此中序遍历一颗二叉搜索树,可以很容易的得到它的第k大的节点.使用一个 ...
- 剑指offer(62)二叉搜索树的第K个节点
题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 题目分析 首先,我们可以先画图.画完图后我们要想办法从 ...
- 【Offer】[54] 【二叉搜索树的第k小节点】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 给定一棵二叉搜索树,请找出其中第k小的节点.例如,在下图的二叉搜索树里,按节点数值大小顺序,第三小节点的值是4.  牛客网刷题地址 思 ...
- 64.二叉搜索树的第K个节点
题目描述: 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 思路分析: 根据二叉搜索树的特殊性,我们中序遍历它 ...
- 每日一题 - 剑指 Offer 54. 二叉搜索树的第k大节点
题目信息 时间: 2019-07-04 题目链接:Leetcode tag:二叉搜索树 中序遍历 递归 难易程度:中等 题目描述: 给定一棵二叉搜索树,请找出其中第k大的节点. 示例1: 输入: ro ...
- 《剑指offer》面试题54. 二叉搜索树的第k大节点
问题描述 给定一棵二叉搜索树,请找出其中第k大的节点. 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 输出: 4 示例 2: 输入: ...
- 剑指offer——59二叉搜索树的第k大节点
题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 题解: 考察的就是中序遍历 不过注意进行剪枝 cl ...
随机推荐
- Java面试知识点之虚拟机篇(一)
前言:Java虚拟机的重要性不言而喻,不管是在实际工作中,还是面试中. 1.JVM架构 要点: 主要了解Java虚拟机运行时数据区:程序计数器.Java虚拟机栈.本地方法栈.Java堆和方法区. 参考 ...
- NGINX+PHP+ZABBIX,推荐
https://www.cnblogs.com/liuzhennan/articles/5319280.html
- CMake 常用方法
CMake 允许开发者编写平台无关的 CMakeLists.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Linux 的Makefi ...
- ubuntu部分端口命令的使用----开启端口/开启防火墙
环境系统: ubuntu 工具:xshell + virtualbox 1.测试远程主机的端口是否开启(windows命令行下执行) telnet 192.168.1.103 80 远程访问主机的80 ...
- Hadoop Yarn调度器的选择和使用
一.引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色.在讨论其构造器之前先简单了解一下Yarn的架构. 上图是Yarn的基本架构,其中ResourceManager是整个架构的核 ...
- virtualenv虚拟环境的使用
前提条件:安装好python环境并配置好环境变量(可参考另一篇博文,python安装及配置) 1.打开cmd命令终端 pip3 install virtualenvwrapper-win(我电脑上面已 ...
- docker创建nginx+php-fpm+mysql环境(一分钟搭建lnmp)
下载镜像 docker pull bitnami/php-fpm #下载php-fpm镜像 docker pull nginx #下载nginx镜像docker pull mysql:5.5.59 # ...
- 小P的秘籍
题目描述 小P马上就要来到程序设计大赛的现场.上了,他希望能够AK这次比赛,所以他找到了一个字符串. 这个字符串长度为n,由A和K组成.这个字符串被小p称为AK串.小P任意截取一个区间s,使得这个区间 ...
- sort 快排解决百万级的排序
问题:给n个整数,按从大到小的顺序,输出前m大的整数0<m,n<1000000,每个整数[-500000,500000]输入:5 33 -35 92 213 -644输出:213 92 3 ...
- Oja’s rule
目录 Oja's rule 背景 Hebbian learning 主要的一些理论 论文里面一些主要的假设 引理1 引理2 引理3 定理1 LEMMA 3(ALL) 引理 4 定理 2 定理 3(关于 ...