当前位置: 首页 > news >正文

leetcode 二叉搜索树中第k小的元素 java

中序遍历
在这里插入图片描述

  1. 定义一个栈,用于存取二叉树中的元素
Deque<TreeNode> stack = new ArrayDeque<TreeNode>();
  1. 进入while循环while(! stack.isEmpty()|| root != null){}
  2. 将root的左节点入栈,直到root==null
while(root==null){stack.push(root);root= root.left;
}
  1. 将栈中的节点取出来,--k;
root = stack.pop();
--k;
if(k==0){
break;
  1. 开始取右节点
root = root.right;
  1. 最后返回root.val

整体代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int kthSmallest(TreeNode root, int k) {Deque<TreeNode> stack  = new ArrayDeque<TreeNode>();while(! stack.isEmpty()||root!=null){while(root!=null){stack.push(root);root = root.left;}root = stack.pop();--k;if(k==0){break;}root = root.right;}return root.val;}
}

相关文章:

  • 小白初学SpringBoot记录
  • Inno Setup 脚本中常用术语释义
  • 一站式直播工具:助力内容创作者高效开启直播新时代
  • SQL语法
  • RAMSUN分享全新超值型MM32F0050系列MCU
  • Java基础原理与面试高频考点
  • Python绘图库及图像类型之基础图表
  • 告别延迟,拥抱速度:存储加速仿真应用的解决方案【1】
  • Gateway 搭建
  • NLP常用工具包
  • FreeType 字体信息检查工具 - 现代C++实现
  • 信创认证通关攻略:从环境搭建到测试报告的全流程操作指南
  • Maskrcnn网络结构学习
  • ArcGIS Pro 3.4 二次开发 - 地图探索
  • Neo4j 认证与授权:原理、技术与最佳实践深度解析
  • GO语言---函数命名返回值
  • DrissionPage爬虫包实战分享
  • Ethernet IP转Modbus网关在热泵机组中的协议转换技术实现
  • Vue中的自定义事件
  • 自注意力,多头注意力,交叉注意力代码对比
  • 腾讯云服务器怎么做网站/西安百度seo代理
  • 做微商能利用的网站有哪些问题/智谋网站优化公司
  • 网站建设教程免费夕滋湖南岚鸿官网/百度网站大全旧版
  • 企业网站cms模板/中视频自媒体平台注册
  • wordpress 自定义字段 排序/郑州网站关键词优化公司哪家好
  • 电子商务网站建设需要什么/广告公司推广平台