面试题63:二叉搜索树的第k个结点
来源:互联网 发布:天播网络机顶盒刷系统 编辑:程序博客网 时间:2024/06/03 16:32
题目描述:
给定一颗二叉搜索树,请找出其中的第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 {public: TreeNode* KthNode(TreeNode* pRoot, int k){ stack<TreeNode*> s; TreeNode* temp = pRoot; while (temp || !s.empty()) { if (temp) { s.push(temp); temp = temp->left; } else { temp = s.top(); s.pop(); --k; if(k == 0) return temp; temp = temp->right; } } return NULL; }};
0 0
- 面试题63:二叉搜索树的的第k个结点
- 面试题63:二叉搜索树的第K个结点
- 《剑指Offer》学习笔记--面试题63:二叉搜索树的第k个结点
- 【剑指Offer学习】【面试题63:二叉搜索树的第k个结点】
- 剑指offer-面试题63:二叉搜索树的第K个结点
- 《剑指offer》面试题63 二叉搜索树的第k个结点
- 剑指offer--面试题63:二叉搜索树的第k个结点
- 剑指offer-面试题63-二叉搜索树的第k个结点
- 面试题63:二叉搜索树的第k个结点
- 剑指offer 面试题63 二叉搜索树的第 k 个结点
- 剑指offer面试题63 二叉搜索树的第k个结点
- 【剑指Offer】面试题63:二叉搜索树的第k个结点
- 剑指offer 面试题63 二叉搜索树的第 k 个结点
- 剑指offer 面试题63:二叉搜索树的第k个结点(二叉树中序遍历的应用) 题解
- 面试题63. 二叉搜索树的第k个结点
- 【二叉树】二叉搜索树的第k个结点
- 面试题70:二叉搜索树第K大的结点*
- 面试题63:二叉搜索树的第K个节点
- POJ Is The Information Reliable <差分约束+SPFA>
- MyBatis操作数据库步骤
- linux用户进程内存管理基本架构
- FFmpeg
- Ubuntu如何查找libz.so.1属于哪个包并安装
- 面试题63:二叉搜索树的第k个结点
- Electron 编译
- 170427 百度地图JSAPI
- CSDN日报20170426 ——《四无年轻人如何逆袭》
- V4L2框架分析学习
- java游戏服务器之网络层Netty 之EventLoop
- 轮播图切换
- [LeetCode]13. Roman to Integer(罗马数字转化为整数)
- UESToj 1057 秋实大哥与花 ( 线段树