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

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;}
}
http://www.xdnf.cn/news/12073.html

相关文章:

  • SiFli 567+emmc Standby休眠报错问题
  • 重装系统+驱动+磁盘分区
  • day19 leetcode-hot100-37(二叉树2)
  • 5.29-6.4解决问题归纳
  • 银行用户信誉等级
  • 前端面试宝典---vite原理解析
  • Numpy——结构化数组和Numpy文件
  • 【电赛培训课程】电子设计竞赛工程基础知识
  • 使用qt 定义全局钩子 捕获系统的键盘事件
  • 《人性的弱点》核心总结
  • AI基础认知
  • 【Python连接数据库基础 06】Pandas与SQL协同:解锁大规模数据处理新境界,让分析效率飙升10倍
  • 代理IP:6G标准化进程中的隐形推手
  • 如何在 React 中监听 div 的滚动事件
  • Pendulum:优雅处理 Python 中的日期与时间
  • vue3动态插入iframe,内容被取消的原因
  • pack 布局管理器
  • 第十三节:第三部分:集合框架:Map集合的遍历方式
  • 数码相片冲印规格参考表
  • Docker load 后镜像名称为空问题的解决方案
  • 国芯思辰ADE芯片成功替代ADS1296R,除颤仪核心部件实现自主可控
  • git删除本地分支和远程分支
  • 非对称加密
  • MuLogin浏览器如何使用Loongproxy?
  • 【AI系列】DPO 与 PPO 的比较与分析
  • 民锋视角下的资金流效率与账户行为建模
  • 解决fastadmin、uniapp打包上线H5项目路由冲突问题
  • Netty内存池之内存分配算法
  • 字符串接龙
  • Java 大视界 — Java 大数据在智能安防视频监控中的异常事件快速响应与处理机制