61二叉搜索树的第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){
if(pRoot == nullptr){
return nullptr;
}
stack<TreeNode*> s;
//s.push(pRoot);
TreeNode* p = pRoot;
int cnt = ;
while(!s.empty() || p != nullptr){
while(p != nullptr){
s.push(p);
p = p->left; }
if(!s.empty()){
p = s.top();
s.pop();
++cnt;
if(cnt == k){
return p;
}
p = p->right;
}
}
return nullptr;
}
};
61二叉搜索树的第k个结点的更多相关文章
- C++版 - 剑指offer 面试题63:二叉搜索树的第k个结点(二叉树中序遍历的应用) 题解
面试题 63:二叉搜索树的第k个结点 题目:给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 (见下面的图1) 中,按结点数值大小顺序第三个结点的值 ...
- 63:二叉搜索树的第k个结点
/** * 面试题63:二叉搜索树的第k个结点 * 给定一颗二叉搜索树,请找出其中的第k大的结点 * 例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. ...
- 《剑指offer》第五十四题(二叉搜索树的第k个结点)
// 面试题54:二叉搜索树的第k个结点 // 题目:给定一棵二叉搜索树,请找出其中的第k大的结点. #include <iostream> #include "BinaryTr ...
- 剑指offer 62. 二叉搜索树的第 k 个结点
62. 二叉搜索树的第 k 个结点 题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 法一: 非递归中序 ...
- 【剑指Offer】二叉搜索树的第k个结点 解题报告(Python)
[剑指Offer]二叉搜索树的第k个结点 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...
- 【剑指Offer】62、二叉搜索树的第k个结点
题目描述: 给定一棵二叉搜索树,请找出其中的第k小的结点.例如(5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 解题思路: 本题实际上比较简单,主要还是考察对 ...
- 剑指offer:二叉搜索树的第k个结点(中序遍历)
1. 题目描述 /* 给定一棵二叉搜索树,请找出其中的第k小的结点. 例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. */ 2. 思路 中序遍历二叉搜索树,第K个就 ...
- 二叉搜索树的第k个结点
给定一颗二叉搜索树,请找出其中的第k小的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. /* public class TreeNode { ...
- 二叉搜索树的第 k 个结点
题目 给定一颗二叉搜索树,请找出其中的第k小的结点,即将二叉树中所有元素从小到大排序的第 k 个结点. 解析 按中序遍历二叉搜索树就可以获得一个非递减的序列,此时第 k 个就为答案.实际上我们只需要按 ...
随机推荐
- css中定义变量
css中定义变量 定义变量可分多种情况: 1.定义全局变量 :root { --borderColor: #ccc;} 2.定义某元素下的变量 .look{ --borderColor: #ccc;} ...
- PTA的Python练习题(十七)
第4章-19 矩阵运算 a=eval(input()) s=[] count=0 for i in range(a): b=input() s.append([int(i) for i in b.sp ...
- oracle常见的函数
1.字符函数 -- initcap函数只针对英文 select * from tb_user where user_name = initcap('张三'); -- ltrim 左剪切 select ...
- 牛客新年AK场之模拟二维数组
链接:https://ac.nowcoder.com/acm/contest/3800/D来源:牛客网 题目描述 Rinne 喜欢使用一种奇怪的方法背单词,现在这些单词被放在了一个 n×mn \tim ...
- 【C语言】创建一个函数,并调用比较两个数的大小
#include <stdio.h> int max(int x,int y) { if(x>=y) return x; else return y; } main() { int ...
- 【C语言】极坐标转换为直角坐标
写一个程序把极坐标(r,θ) (θ之单位为度)转换为直角坐标( X,Y). 转换公式是x=r.cosθ y=r.sinθ 程序输出:输出转换后的坐标. 弧度和角度的换算关系如下: 1弧度=180/π度 ...
- 【MySQL】数据类型之数字相关
" 目录 #. 数值类型 1. 数值范围验证 /. 有符号 /. 无符号 2. int类型显示长度验证 #. 浮点型 1. 验证 /. 建表 /. 精度 #. 日期类型 1. 验证 /. y ...
- try catch和if else
当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息.描述这种情况的技术术语是:JavaScript 将抛出一个错误. try 语句允许我们定义在执行时进行错误测试的 ...
- 4_2 刽子手游戏(UVa489)<自顶向下逐步求精法>
Hangman Judge是一个猜英文单字的小游戏(在电子字典中常会看到),游戏规则如下:1.答案单字写在纸上(每个字元一张纸),并且被盖起来,玩家每次猜一个英文字元(letter).2.如果这个英文 ...
- 4_1 古老的密码(UVa1339)<排序>
古罗马帝国与各部门有一个强有力的政府系统,包括一个秘密服务部门.重要的文件以加密的形式发送防止窃听.在那个时代最流行的密码被称为替代密码和置换密码.例如,应用替代密码,改变所有字母“A”到“Y”字母表 ...