61二叉搜索树的第k个结点

题目描述

给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
思路:二叉搜索树的中序遍历是递增的序列,使用循环的中序遍历找到第k个节点就行了,对中序遍历的循环版本没理解,使用一个stack,找到最左边的节点,所以初始化的时候首先初始化节点,stack要为空。计数的cnt要初始化为0。不清楚的话就一个节点的时候判断一下,然后p = p->right,不需要判断为空,因为为空的话,上面的循环不会进入。
/*
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 = 0;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;}    
};

 

转载于:https://www.cnblogs.com/dingxiaoqiang/p/8310982.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python海龟绘图_Python教学案例|海龟绘图三例

说明&#xff1a;海龟绘图网上的案例非常多&#xff0c;网上百度一搜就可以找到各种各样的不同绘图参考代码&#xff0c;简单的有&#xff0c;难的有绘制梵高画、九大行星图等等&#xff0c;有需求的最好问度娘&#xff0c;简单又方便。分享Python 基础教程:https://www.runoob…

后香农时代,华为提出10大数学挑战问题

来源&#xff1a;机器之心编辑&#xff1a;杜伟后香农时代的通信技术会如何发展&#xff1f;又有哪些值得业界关注的数学问题呢&#xff1f;在上月底结束的长沙「数学促进企业创新发展论坛」上&#xff0c;华为董事、战略研究院院长徐文伟抛出了后香农时代信息产业发展面临的了…

Oracle中如何查询一个表的所有字段名和数据类型

Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_NAME表名 查询例子 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_NAMEPUB_GOODS 添加排序后例子 select A.COLUMN…

wdcp mysql远程_CentOS下WDCP下的MYSQL开启远程连接

在 Windows 主机中点击开始菜单&#xff0c;运行&#xff0c;输入“cmd”&#xff0c;进入控制台&#xff0c;然后cd 进入MySQL 的 bin 目录下&#xff0c;然后输入下面的命令。> MySQL -uroot -p123456 (123456 为 root 用户的密码。)如何开启MySQL的远程帐…

美智库:下一代国防战略之竞争战略

来源&#xff1a;远望智库预见未来编译&#xff1a; 张涛&#xff08;远望智库技术预警中心&#xff09;美国新国家安全中心(CNAS)日前发布题为《竞争战略》的文章&#xff0c;作者梅兰妮西森撰文分析认为五角大楼的下一代国防战略需要一种能够说服盟友和胁迫对手的竞争战略。背…

mysql key buffer_mysql 开发进阶篇系列 16 MySQL Server(myisam key_buffer)

一.概述mysql 提供了很多参数来进行服务器的设置&#xff0c;当服务第一次启动的时候&#xff0c;所有启动参数值都是系统默认的。这些参数在很多生产环境下并不能满足实际的应用需求。在这个系列中涉及到了linux 服务器&#xff0c;我这里是centos7.4, mysql 5.7,Xshell6。1. …

这里有一张中国的数字化地图,请查收

来源&#xff1a;腾讯研究院今天&#xff0c;在2020腾讯全球数字生态大会上&#xff0c;腾讯研究院联合腾讯云发布了《数字中国指数报告&#xff08;2020&#xff09;》。此次发布的报告显示&#xff1a;2019年数字中国指数继续保持高速增长&#xff0c;其中&#xff0c;以珠三…

mysql中的强制索引_MYSQL中常用的强制性操作(例如强制索引)

mysql常用的hint对于经常使用oracle的朋友可能知道&#xff0c;oracle的hint功能种类很多&#xff0c;对于优化sql语句提供了很多方法。同样&#xff0c;在mysql里&#xff0c;也有类似的hint功能。下面介绍一些常用的。强制索引 FORCE INDEX复制代码代码如下:SELECT * FROM TA…

华为王成录:把安卓最核心部分换得差不多了 手机升级鸿蒙OS 2.0水到渠成

内容来自网易新闻9月10日下午&#xff0c;华为在东莞松山湖举办了2020华为开发者大会&#xff0c;发布了鸿蒙OS 2.0、EMUI 11&#xff0c;并介绍HMS生态目前最新的成果和进展。大会上&#xff0c;华为消费者业务CEO余承东表示&#xff0c;鸿蒙OS 2.0全面使能全场景生态&#xf…

python学习随笔day3

文档读写 #文档内容切片fopen(abc,r,encodingutf-8) #abc是文档名称count 0;for line in f: if count9: print("--------------------------------切割线----------------------------------") count 1 continue print(line.strip()) …

mybatis mysql5.7_spring boot整合ES+mysql5.7+mybatis+iview个人博客系统

项目描述目前博主正在开发自己的博客&#xff0c;分享的目的&#xff0c;是为了给自己留一版基础代码&#xff0c;好用来以后&#xff0c;做二次开发&#xff0c;也方便大家做二次开发。这个代码我还整合了其他的东西&#xff0c;比如qz定时器&#xff0c;shiro&#xff0c;只不…

人工智能写出第一篇文章:我真的没想要消灭你们,人类!

来源&#xff1a;网信科技前沿在攻克棋类&#xff0c;飞行操控&#xff0c;机器视觉&#xff0c;语音识别等领域后&#xff0c;人工智能又开始入侵写作领域。人工智能被人类开发出来是为了方便我们人类的生活&#xff0c;帮助人类处理一些事物&#xff0c;它的优点在于其拥有庞…

Vue项目开发1-项目的创建

一.环境搭建准备&#xff1a; 1.确保项目已经安装了node 2.webpack安装 npm install webpack -g &#xff08;安装过略过&#xff09; 3.安装vue-cli脚手架构建工具&#xff0c;打开命令行工具输入&#xff1a;npm install vue-cli -g &#xff08;安装过略过&#xff09; 二.构…

html间隔代码_HTML+CSS基础入门开发,经典Loading加载缩放动画特效

大家好&#xff0c;本篇文章分享经典Loading加载缩放动画特效&#xff0c;欢迎参考和指正。效果图&#xff1a;Loading加载缩放动画特效HTML代码&#xff1a;CSS代码&#xff1a;知识点&#xff1a;animation&#xff1a;是CSS3的动画属性&#xff0c;这里把animation绑定到tui…

造一个鸿蒙,仅有华为还不够

来源&#xff1a;雷锋网作者&#xff1a;肖漫“全场景”一词&#xff0c;可以说是整个开发者大会上的高频词汇&#xff0c;在介绍鸿蒙系统 2.0 时&#xff0c;余承东强调&#xff0c;鸿蒙 OS 是首个真正为全场景时代打造的分布式操作系统。用王成录会后采访的话说&#xff0c;鸿…

洛谷 P1091 合唱队形

题目描述 N位同学站成一排&#xff0c;音乐老师要请其中的(N-K)位同学出列&#xff0c;使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形&#xff1a;设K位同学从左到右依次编号为1&#xff0c;2…&#xff0c;K&#xff0c;他们的身高分别为T1&#xff0c;T2&…

mysql怎么禁止远程连接_mysql如何设置禁止远程连接

mysql设置禁止远程连接的方法&#xff1a;1、登录数据库服务器&#xff0c;指定mysql数据库&#xff1b;2、执行【update user set hostlocalhost where userroot;】语句&#xff1b;3、刷新权限表。具体步骤&#xff1a;use mysql #打开mysql数据库#将host设置为localhost表示…

凌复华:冯·诺依曼在量子力学领域的贡献

来源&#xff1a;科学出版社约翰冯诺依曼(John von Neumann,1903.12.28—1957.2.8)这个名字, 对大多数读者都不会是陌生的.人们首先想到的很可能是他在研制世界上第一颗原子弹和第一台可编程数字式电子计算机中所做的贡献.这些确实是他的重要成就,但他对人类的贡献远不止于此.冯…

小程序 鼠标事件

微信小程序鼠标事件 事件分类 事件分为冒泡事件和非冒泡事件&#xff1a; 1. 冒泡事件(bind)&#xff1a;当一个组件上的事件被触发后&#xff0c;该事件会向父节点传递。 2. 非冒泡事件(catch)&#xff1a;当一个组件上的事件被触发后&#xff0c;该事件不会向父节点传递。 bi…

agd插值算法_(1)常见插值算法

图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具&#xff0c;画家常用它来放大图画。当然&#xff0c;在计算机上&#xff0c;我们不再需要用放大尺去放大或缩小图像了&#xff0c;把这个工作交给程序来完成就可以了。下面就来讲讲…