剑指offer(59)-二叉搜索树的第k个结点
来源:互联网 发布:网络大电影拍摄团队 编辑:程序博客网 时间:2024/06/05 15:50
题目描述
给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
解题思路
如果按照中序遍历的顺序遍历一颗二叉搜索树,遍历序列的数值是递增排序的。因此,只需要用中序遍历算法遍历一颗二叉搜索树,就很容易找出它的第k大结点。
代码
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution { int count = 0;public: TreeNode* KthNode(TreeNode* pRoot, unsigned int k) { if(pRoot){ TreeNode *ret = KthNode(pRoot->left, k); if(ret) return ret; if(++count == k) return pRoot; ret = KthNode(pRoot->right,k); if(ret) return ret; } return nullptr; }};
0 0
- 《剑指offer》二叉搜索树的第k个结点
- 剑指offer:二叉搜索树的第k个结点
- [剑指offer]二叉搜索树的第k个结点
- 剑指offer-二叉搜索树的第k个结点
- 【剑指Offer】二叉搜索树的第k个结点
- 剑指offer 二叉搜索树的第k个结点
- 剑指Offer:二叉搜索树的第K个结点
- 剑指offer-二叉搜索树的第k个结点
- 剑指Offer------二叉搜索树的第k个结点
- 剑指offer---二叉搜索树的第k个结点
- 剑指offer(59)-二叉搜索树的第k个结点
- 剑指offer-二叉搜索树中的第k个结点
- 《剑指offer》刷题笔记(树):二叉搜索树的第k个结点
- 剑指offer面试题目63(二叉搜索树的第k个结点)
- 剑指offer(C++)——二叉搜索树的第k个结点
- 【剑指offer-解题系列(63)】二叉搜索树的第k个结点
- 剑指offer——二叉搜索树的第k个结点(一般)
- 剑指offer 63题 【树】二叉搜索树的第k个结点
- maven的setting.xml文件的详解
- 玩转递归
- iOS获取汉字拼音首字母的方法
- 调用手机号码归属地接口 //调用XML格式的数据接口
- 剑指offer系列-T23从上往下打印二叉树
- 剑指offer(59)-二叉搜索树的第k个结点
- 卡方距离
- JZOJ.1421. 二叉树
- J2EE 1.1 如何选择web server
- OpenCV零开始
- navigator.userAgent.indexOf来判断浏览器类型
- 使用android NDK addr2line 定位so 动态库崩溃位置
- android/log
- 淘宝,京东,苏宁易购技术架构(路线)分析和比较