剑指Offer_62_二叉搜索树的第k个结点
题目描述
给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / 3 7 / / 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
解题思路
二叉搜索树的中序遍历得到的结果就是以小到大的排序顺序,因此可以使用中序遍历,每次遍历记录当前结点是第几个结点,当到期望的结点时,返回。
实现
/*树结点的定义*/
public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}}
/*实现*/
public class Solution {TreeNode KthNode(TreeNode pRoot, int k){Result re = kThNode(pRoot, k, 0);return re.node;}private Result kThNode(TreeNode pRoot, int k, int cur) {if (pRoot == null) return new Result(null, cur);Result rl = kThNode(pRoot.left, k , cur);if (rl.k == k) return rl;cur = rl.k + 1;if (cur == k) return new Result(pRoot, k);Result rr = kThNode(pRoot.right, k, cur);if (rr.k == k) return rr;return new Result(null,rr.k);}private class Result{TreeNode node;int k; //第几个数据public Result(TreeNode node, int k){this.node = node;this.k = k;}}
}
转载于:https://www.cnblogs.com/ggmfengyangdi/p/5828864.html
剑指Offer_62_二叉搜索树的第k个结点相关推荐
- 二叉搜索树的第k个节点java_剑指Offer62:二叉搜索树的第k个结点(Java)
思路分析: 首先了解搜索二叉树在中序遍历下的结果是有序的.设一个全局变量num记录次数,每当中序遍历到一个节点时,num++.当num等于k时,返回node即结果. 难在递归上 题目描述 给定一棵二叉 ...
- 剑指offer-JZ54 二叉搜索树的第k个节点(附思路)
描述 给定一棵结点数为n 二叉搜索树,请找出其中的第 k 小的TreeNode结点值. 1.返回第k小的节点值即可 2.不能查找的情况,如二叉树为空,则返回-1,或者k大于n等等,也返回-1 3.保证 ...
- 剑指offer——面试题63:二叉搜索树的第k个结点
剑指offer--面试题63:二叉搜索树的第k个结点 Solution1: 20180916重做 /* struct TreeNode {int val;struct TreeNode *left;s ...
- 《剑指Offer》51. 二叉搜索树的第k个结点
题目:51. 二叉搜索树的第k个结点 知识点:二叉搜索树 题目描述: 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为 ...
- [剑指offer]二叉搜索树的后序遍历数列
[剑指offer]二叉搜索树的后序遍历数列 剑指offer-二叉搜索树的后序遍历序列 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 fals ...
- 牛客题霸 [二叉搜索树的第k个结点]C++题解/答案
牛客题霸 [二叉搜索树的第k个结点]C++题解/答案 题目: 给定一棵二叉搜索树,请找出其中的第k小的结点. 题解: 二叉搜索树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它 ...
- 剑指offer:二叉搜索树的第k个结点(中序遍历)
1. 题目描述 /*给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. */ 2. 思路 中序遍历二叉搜索树,第K个就是结 ...
- C#刷剑指Offer | 二叉搜索树的后序遍历序列
[C#刷题]| 作者 / Edison Zhou 这是EdisonTalk的第289篇原创内容 我们来用之前学到的数据结构知识来刷<剑指Offer>的一些核心题目(精选了其中30+道题目) ...
- [剑指offer] 二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列 P157 题目:输入一个数组,判断这个数组是不是一个二叉搜索树的后序遍历的结果. solution:我们知道后序遍历序列的最后一个item是根节点,如果确实是二叉搜索树的后序 ...
- 剑指offer——二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 这里遇到的问题就是,传递的子数组怎 ...
最新文章
- 模拟文件上传(一):手动文件上传
- 由于分形导致的神经网络分类误差
- python转csv_python如何将列表存储为csv文件
- ST17H26移植软时钟代码
- python向量机使用方法_Python中支持向量机SVM的使用方法详解
- 【APICloud系列|24】 MNNavigationMenu模块(导航菜单)的实现
- 神经网络模型模型转ONNX
- h5+js调取相机做取景框_iPhone 12 相机操作指南,用好了随手一拍就是大片!
- JavaScript性能优化之加载与执行
- css3美话网页元素
- x[:,n]或者x[n,:]的用法
- 如何免费复制网页内容
- 前沿Perspective | 空间转录组数据分析方法最新进展
- 【建模算法】层次分析法(Python实现)
- 3dmax运动混合器的使用
- 『随笔』基本功与招式
- 中富金石投教怎么样?让专业投资创造更多财富机会
- PDF转换器用什么好?这款一定能够帮到你
- 数据资本时代:市场与公司
- 重构类关系-Replace Inheritance with Delegation以委托取代继承十一