zoukankan      html  css  js  c++  java
  • LeetCode 230.二叉树中第k小的元素

    题目:

              

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

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

     

     

           这道题在leetCode上难度为中等,但我觉得其实只要掌握了二叉搜索树遍历的特点就很好解决了。二叉搜索树的中序遍历顺序是由低到高的升序,所以我们只需要找到中序遍历第k个遍历出来的就行了。

       代码:

           

     1 class Solution {
     2     private int i = 0;
     3     private int val = 0;
     4       public void ksmall(TreeNode root, int k) {
     5         if (root == null) {
     6             return;
     7         }
     8         ksmall(root.left, k);
     9         if (k == ++i) {
    10             val = root.val;
    11         }
    12         ksmall(root.right, k);
    13     }
    14     public int kthSmallest(TreeNode root, int k) {
    15         ksmall(root,k);
    16         return val;
    17         
    18     }
    19 }
  • 相关阅读:
    java工程师要求
    系统架构设计师知识模块
    Mybatis使用训练
    项目—视频直播系统
    [数算]概率
    查看镜像文件
    Hadoop启动命令
    Hadoop启动命令
    HDFS设置配额管理
    HDFS设置配额管理
  • 原文地址:https://www.cnblogs.com/Sherlockmmc/p/11530181.html
Copyright © 2011-2022 走看看