博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
230. Kth Smallest Element in a BST
阅读量:6276 次
发布时间:2019-06-22

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

Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.

Note:
You may assume k is always valid, 1 ≤ k ≤ BST's total elements.
Example 1:

Input: root = [3,1,4,null,2], k = 1   3  / \ 1   4  \   2Output: 1

Example 2:

Input: root = [5,3,6,2,4,null,null,1], k = 3       5      / \     3   6    / \   2   4  / 1Output: 3

Follow up:

What if the BST is modified (insert/delete operations) often and you need to find the kth smallest frequently? How would you optimize the kthSmallest routine?

难度:medium

题目:给定二叉搜索树,找出其值第K小的结点。

思路:中序遍历

Runtime: 0 ms, faster than 100.00% of Java online submissions for Kth Smallest Element in a BST.

Memory Usage: 38.9 MB, less than 19.71% of Java online submissions for Kth Smallest Element in a BST.

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public int kthSmallest(TreeNode root, int k) {        int[] result = {root.val};        kthSmallest(root, k, new int[1], result);                return result[0];    }        public void kthSmallest(TreeNode root, int k, int[] count, int[] result) {        if (root == null || count[0] >= k) {            return;        }        kthSmallest(root.left, k, count, result);        count[0]++;        if (count[0] == k) {            result[0] = root.val;            return;        }         kthSmallest(root.right, k, count, result);    }}

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

你可能感兴趣的文章
[Cake] 0.C#Make自动化构建-简介
查看>>
《TCP/IP协议》- TCP协议知识目录
查看>>
详尽! Win10安装Java8+Tomcat9!
查看>>
1127
查看>>
一次痛的经历
查看>>
智能运维(AIOps)时代开启,一文帮你快速了解其定义与发展现状
查看>>
第1讲 快速入门 《Kotlin 极简教程 》
查看>>
[Hadoop]MapReducer工作过程
查看>>
VMware PowerCli批量实现虚拟机快照备份
查看>>
小程聊微服务-基于dubbo的mock测试系统
查看>>
在阿里云服务器使用scrapyd部署scrapy项目
查看>>
业界 | 从观望者到变革者:给新媒体的AI解决方案
查看>>
利用 CSS 变量实现令人震惊的悬浮效果
查看>>
爬虫入门之handler与opener(三)
查看>>
Linux Kernel 5.2 将进一步支持 AMD FreeSync
查看>>
Java CompletableFuture:thenCompose (3)
查看>>
Node.js编程之异步
查看>>
亦策软件与Qlik联合参加第六届大数据世界论坛
查看>>
RecyclerView进阶
查看>>
Java8学习(4)-Stream流
查看>>