博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Leetcode刷题篇】leetcode230 二叉搜索树中第K小的元素
阅读量:1887 次
发布时间:2019-04-26

本文共 1081 字,大约阅读时间需要 3 分钟。

题目:给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。

说明:

你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。

在这里插入图片描述

思路1:递归方式

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; } } // 递归 public int kthSmallest(TreeNode root, int k) {
ArrayList
res = new ArrayList<>(); res = inorder(root,res); return res.get(k-1); } // 存储 private ArrayList
inorder(TreeNode root,ArrayList
res){
if(root==null) {
return res; } // 左子树 inorder(root.left,res); // 当前节点的值处理 res.add(root.val); // 右子树 inorder(root.right,res); return res; }

思路2:迭代方式

// 迭代	 public int kthSmallest_2(TreeNode root, int k) {
Stack
stack = new Stack<>(); while(true) {
while(root!=null) {
stack.push(root); root = root.left; } root = stack.pop(); if(--k==0) {
return root.val; } root = root.right; } }

转载地址:http://awwdf.baihongyu.com/

你可能感兴趣的文章
leetcode 994. 腐烂的橘子
查看>>
剑指offer 重数组中重复的数字
查看>>
leetcode 695 岛屿的最大面积
查看>>
leetcode 300 最长上升子序列
查看>>
正则速查表
查看>>
leetcode 409. 最长回文串
查看>>
leetcode 922. 按奇偶排序数组系列
查看>>
leetcode 476. 数字的补数 1009. 十进制整数的反码
查看>>
leetcode 908. 最小差值 I
查看>>
剑指offer 40.最小的k个数
查看>>
leetcode 171.Excel表列序号
查看>>
leetcode 365.水壶问题
查看>>
leetcode 876. 链表的中间结点
查看>>
一道关于HashSet的题目
查看>>
leetcode 面试题 17.16. 按摩师
查看>>
leetcode 892. 三维形体的表面积
查看>>
leetcode 999. 车的可用捕获量
查看>>
leetcode 914. 卡牌分组
查看>>
Django 链接MySQL数据库,报错Did you install mysqlclient?
查看>>
Django实现一个简单的图书管理系统
查看>>