简单理解leetcode--剑指 Offer 54. 二叉搜索树的第k大节点

【牛客算法】某司面试算法题:循环右移二叉树 现有一棵n个节点构成的二叉树,请你将每一层的节点向右循环位移k位。某层向右位移一位(即k=1)的含义为:若当前节点为左孩子节点,会变成当前节点的双亲节点的右孩子节点。若当前节点为右儿子,会变成当前节点的双亲节点的右边相邻兄弟节点的左孩子节点。(如果当前节点的双亲节点已经是最右边的节点了,则会变成双亲节点同级的最左边的节点的左孩子节点该层的每一个节点同时进行一次位移。是从最下面的层开始位移,位移完每一层之后,再向上,直到根节点,位移完毕。如果从最后一层开始对该二叉树的每一层循环位移k位。 阅读详情

题目:

给定一棵二叉搜索树,请找出其中第k大的节点。

 

示例 1:

输入: root = [3,1,4,null,2], k = 1
   3
  / \
 1   4
  \
   2
输出: 4

示例 2:

输入: root = [5,3,6,2,4,null,null,1], k = 3
       5
      / \
     3   6
    / \
   2   4
  /
 1
输出: 4

 

限制:

1 ≤ k ≤ 二叉搜索树元素个数

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解:

class Solution {
	//计数器
    int count = 0;
    //答案
    int res;
public:
    int kthLargest(TreeNode* root, int k) {
    	//数为空
        if(root==NULL) return 0;
        kthLargest(root->right,k);
        //中序遍历时计数
        count++;
        //符合条件记录题解
        if(count==k){
            res = root->val;
        }
        kthLargest(root->left,k);
        return res;
    }
};

思路:
看代码其实很容易理解,我们中序遍历二叉搜索树的时候就是顺序排列。值得注意的是这里要的是第k大所有我们先遍历右子树,在遍历左子树就可以了!

不懂可以评论区问我ou!

数组循环移动k位- C++ 数组循环移动k位- -C++ 立即下载

相关推荐

二叉树中找出第i大的元素

在二叉树中查找出度为2的节点个数,可供参考

剑指offer | 面试题54:二叉搜索树的第k大节点

转载本文章请标明作者和出处 本文出自《Darwin的程序空间》 本文题目和部分解题思路来源自《剑指offer》第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, 如下图(5,3,7,2,4,6,8) 中,按节点数值大小顺序第三小结点的值为4 二叉树的定义如下: public class TreeNode { in...

程序员大航子 9050

一个固定翼飞机仿真程序带你系统性上手如何实现配平(工具箱+脚本)

老规矩,该博客所用的模型和脚本已上传至百度网盘,名字为“固定翼配平训练例子”,自己自取。

zouxu634866的博客 2570

数据结构第八周 :( 数组循环右移K位 + 二叉树的创建及遍历 + 二叉树根据中序和后序求前序遍历 + 二叉树结点的共同祖先问题 + 二叉树左右子树交换操作 )

编写程序,将二叉树的每个结点的左、右子树进行交换,请注意不是只交换结点的data值,而是左、右孩子指针指向的交换,最后输出交换后的二叉树的后序遍历序列。【问题描述】假设二叉树采用二叉链表方式存储,root指向根结点,p所指结点和q所指结点为二叉树中的两个不同结点,且互不成为根到该结点的路径上的点,编程求解距离它们最近的共同祖先。【输出形式】结点数据值为 x 和结点数据值为 y 的最近的共同祖先,若没有共同祖先则输出NULL,请注意一个结点本身不能成为另一个结点的共同祖先。【输出形式】叶子结点的数目;

一只可爱的小猴子的博客 1068

RV1106G3的AOV下的yolov5调试记录

本文介绍了基于LuckFoxPicoMax开发板的RV1106芯片调试经验,重点包括AOV(Always-On Vision)和Yolov5目标检测的实现。在硬件方面,板载1TOPS NPU、256MB内存,并更换为SPI NOR存储。软件调试涉及MK配置文件修改、设备树调整(按键唤醒和sensor配置)以及程序自启动设置。Yolov5模型优化为320*320尺寸,推理时间约45ms。系统采用VI采图与AI识别通过共享内存通信的方案,实测功耗在20-35mA范围。文章还指出了当前存在的功耗优化、ISP调试等

fzktongyong的博客 1715

PostgreSQL和PostGIS安装、导入shp或gdb格式数据至数据库、使用QGIS测试上传PstGIS数据库操作和代码

本文详细介绍了postgresql和postgis安装步骤,并且使用postgis测试上传shp和gdb格式的矢量数据至数据库,包括步骤和代码,并使用qgis连接postgis数据查看数据库里的数据,数据依旧和本地数据一样可查看可编辑,方便后续数据底座开发和服务。

weixin_46456488的博客 1246

leetcode102. 二叉树的层序遍历

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 其层次遍历结果: [ [3], [9,20], [15,7] ] 思路:可用队列实现这个问题,每一层的节点存储在队列中,然后获取节点值之后判断该节点是否有左右子节点,有就保存,保存完之后需要删除该节点,需要用一个循环来控制该层节点是

一条特立独行的狗、的博客 351

PCB工程师必看:别再搞错1078玻纤布的Dk了,手把手教你算等效介电常数

本文为PCB工程师提供了1078玻纤布等效介电常数(Dk)的详细计算指南,帮助解决高速设计中的信号完整性问题。通过解析玻纤布结构、混合介质理论和实战计算方法,指导工程师准确设置EDA工具参数,避免常见的Dk计算误区,提升设计精度和仿真准确性。

weixin_42546392的博客 399

二叉搜索树的第K大节点

来自《剑指Offer》中的题,给定一棵二叉搜索树,请找出其中第k大的节点。 二叉树相关问题也是老面试问题了,想当年数据结构巅峰时期也是手撸AVL Tree,Splay Tree。现在一个前中后序遍历都要反应半天,改天还是要再系统地总结回顾一下二叉树相关的知识。 刚开始想的时候没反应过来二叉搜索树是个啥,接直接维护了个优先队列priority_queue,然后bfs把整个二叉树遍历了一遍。bfs...

Xiami2019的博客 1431

使用CiteSpace软件对知网文献进行关键词共现/聚类/突现分析

一、基本概念CiteSpace(引文空间)是一款专注于分析科学分析中蕴含的潜在知识的软件。它是在科学计量学、数据可视化背景下逐渐发展起来的引文可视化分析软件。通过可视化的手段,CiteSpace能够呈现科学知识的结构、规律和分布情况,并因此将这种分析得到的可视化图形称为“科学知识图谱”。二、主要功能和用途知识图谱构建:根据科学文献的引用关系,CiteSpace可以生成知识图谱,帮助研究人员更好地理解学术领域中不同文献之间的联系和演化过程。主题聚类分析。

m0_64336780的博客 1万+

第4章 部署负载均衡 Keepalived + HAProxy

本章在所有 Master 节点部署 Keepalived + HAProxy,为 kube-apiserver 提供高可用入口。Keepalived 实现 VIP(192.168.3.59)漂移,HAProxy 轮询转发请求至三个 Master 的 6443 端口(监听 6444 避免冲突)。健康检查脚本连续 5 次失败则停止 Keepalived,触发 VIP 自动切换。本章还包含配置详解、日常运维和问题排查。

幸福街--linux技术分享 120

剑指 Offer 54. 二叉搜索树的第k大节点 - leetcode 剑指offer系列

题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ 另外在公众号里回复 offer 就能看到剑指 offer 系列当前连载的所有文章了 题目描述 给定一棵二叉搜索树,请找出其中第 k 大的节点。 1 ≤ k ≤ 二叉搜索树元素个数 题目样例 示例 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 输出: 4 题目思考 如何利用.

随便发挥的博客 230

FAA和EASA在机载电子硬件适航中的发展历史与差异

FAA和EASA在机载电子硬件的适航审查中虽然存在一些差异,但通过近年来的合作,这些差异正在逐步缩小。两者通过。

qq_41854911的博客 745

二叉搜索树第大K节点,剑指offer,力扣

剑指 Offer 54.的第k大节点给定一棵二叉搜索树,请找出其中第k大的节点的值。二叉搜索树的中序遍历为,根据此性质,易得二叉搜索树的为。因此,求 “二叉搜索树第 cnt大的节点” 可转化为求 “此树的中序遍历倒序的第 cnt个节点”。为 “左、根、为 “右、根、左。

m0_70437378的博客 631

Win10 开机突然蓝屏错误代码0xc0000001安全模式也进不了,不用重装系统怎么修复?(已解决)九个解决参考方案

Win 10专业版HP480G7。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【剑指 Offer 54. 二叉搜索树的第k大节点】

【剑指 Offer 54. 二叉搜索树的第k大节点】题目描述:示例:解析思路1:暴力解法代码(python3)代码(cpp)解析思路2:利用 二叉查找树的遍历性质(中序遍历+提前返回)代码(python3)代码(cpp) 题目描述: 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof 给定一棵二叉搜索树,请找出其中第 k 大的节点的值。 示例: 示例1: 输

是小武呀 644

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点(Java)

给定一棵二叉搜索树,请找出其中第k大的节点。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { List<Integer> list = new ArrayL

小楊同学的笔记本 265

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【刷题】2021最新剑指Offer汇总

新手村 关卡1-1 洛谷的第一个任务 超级玛丽游戏(洛谷-P1000):点击这里 A+B Problem(洛谷-P1001):点击这里

瑞新の博客:bennyrhys 6299

leetcode: 剑指 Offer 54. 二叉搜索树的第k大节点

给定一棵二叉搜索树,请找出其中第k大的节点。 方法一:遍历二叉树放入数组中 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { ArrayList<Integer&

weixin_49131718的博客 99

【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点

给定一棵二叉搜索树,请找出其中第k大的节点的值。分析: 二叉搜索树的特点就是根左

weixin_63895720的博客 271

二叉排序树删除节点_剑指 Offer 54. 二叉搜索树的第k大节点

给定一棵二叉搜索树,请找出其中第k大的节点。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / 1 4 2 输出: 4限制:1 ≤ k ≤ 二叉搜索树元素个数思路:二叉搜索树的中序遍历为递增序列,所以它中序遍历的倒序就是递减序列。针对此题,我们只需求出其中序遍历倒序的第k个节点即可。二叉搜索树的中序遍历为递增序列代码:class Sol...

weixin_39719732的博客 150

力扣剑指Offer 第15天 搜索与回溯算法(中等)剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树与双向链表 剑指 Offer 54. 二叉搜索树的第k大节点

力扣剑指Offer 第15天 搜索与回溯算法(中等)剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树与双向链表 剑指 Offer 54. 二叉搜索树的第k大节点 剑指 Offer 34. 二叉树中和为某一值的路径 题目 给你二叉树的根节点 root和一个整数目标和 targetSum,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例1 输入:root = [5,4,8,11,null,13,4,7,2,null,n

Ctrl_kun的博客 190

LeetCode刷题——剑指offer深度优先搜索题目汇总

剑指 Offer 12. 矩阵中的路径 剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树与双向链表 剑指 Offer 54. 二叉搜索树的第k大节点 剑指 Offer 55 - I. 二叉树的深度 剑指 Offer 55 - II. 平衡二叉树 剑指 Offer 68 - II. 二叉树的最近公共祖先

艾醒的博客 545

【leetcode】剑指 Offer 54. 二叉搜索树的第k大节点(js实现)

二叉搜索树的特点:中序遍历的结果是各节点的值升序(从小到大)的结果。

在热爱技术的路上一直前行。 128

剑指offer总目录

剑指offer总目录算法有多重要?为什么要写《剑指offer》专栏题解?目录1~10题11~20题21~30题31~40题41~50题51~60题61~65题刷题网站 算法有多重要? 为什么要写《剑指offer》专栏题解? 目录 1~10题 1.二维数组中的查找 2.替换空格 3.从头到尾打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋转数组的最小数 7.斐波那契数列 8.跳台...

Accept 3501

LeetCode 剑指 Offer 54 二叉搜索树的第k大节点 Writeup

二叉搜索树的第k大节点 二叉树学的不太好,只想到一种容易理解的方法 题解里排第一那样中序遍历时对k递减会好很多 class Solution: def kthLargest(self, root: TreeNode, k: int) -> int: def nodeNums(root): if not root: return 0 return nodeNums(root.left) + nodeN

黑白之院 176
上一篇: c++ sort函数的使用
下一篇: 简单理解hduoj 1106 附ac题解以及Presentation Error避坑
unomit
博客等级 码龄7年 30粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值