zoukankan      html  css  js  c++  java
  • [LeetCode][JavaScript]Kth Smallest Element in a BST

    Kth Smallest Element in a BST

    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.

    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?

    Hint:

    1. Try to utilize the property of a BST.
    2. What if you could modify the BST node's structure?
    3. The optimal runtime complexity is O(height of BST).

    https://leetcode.com/problems/kth-smallest-element-in-a-bst/


    这题信息量好大,先是最简单粗暴的解法。

    二叉搜索树的特性,先序遍历的输出就是排序的结果。

     1 /**
     2  * Definition for a binary tree node.
     3  * function TreeNode(val) {
     4  *     this.val = val;
     5  *     this.left = this.right = null;
     6  * }
     7  */
     8 /**
     9  * @param {TreeNode} root
    10  * @param {number} k
    11  * @return {number}
    12  */
    13 var kthSmallest = function(root, k) {
    14     var count = 0;
    15     var isFound = false;
    16     var res = null;
    17     inorder(root);
    18     return res;
    19 
    20     function inorder(node){
    21         if(node !== null && !isFound){
    22             inorder(node.left);
    23             count++;
    24             if(count === k){
    25                 res = node.val;
    26                 isFound = true;
    27                 return;
    28             }
    29             inorder(node.right);
    30         }
    31     }
    32 };
    1. 相关阅读:
      前端工程师必备的7个chrome插件
      树莓派 基于Web的温度计
      vue2.0 非父子组件如何通信
      newman
      mysql主从同步设置
      redis集群搭建
      服务器之间共享挂载
      Jenkins自动构建-部署-测试
      postman使用整理
      Charles使用
    2. 原文地址:https://www.cnblogs.com/Liok3187/p/4617323.html
    Copyright © 2011-2022 走看看