LeetCode题解-二叉搜索树中第K小的元素-Java

简介: LeetCode题解-二叉搜索树中第K小的元素-Java

主要思路是:

根据二叉搜索树中节点左小右大的特点,使用中序遍历的方式,即可顺序找到第k小元素。

代码如下:

package easy;

import tree.TreeNode;


public class KthSmallest {
   
    private TreeNode tarNode;
    private int t_k;
    public int kthSmallest(TreeNode root, int k) {
   
        //二叉树搜索树:左小右大
        t_k=k;
        inOrder(root);
        return tarNode.val;
    }

    private void inOrder(TreeNode root) {
   
        if (t_k==0){
   
            return;
        }

        if (root.left!=null){
   
            inOrder(root.left);
        }
        t_k--;
        if (t_k==0){
   
            tarNode=root;
            return;
        }
        if (root.right!=null){
   
            inOrder(root.right);
        }
    }
}
目录
相关文章
|
2月前
|
存储 算法 Java
Arraylist 在 Java 中能容纳多少个元素?
【8月更文挑战第23天】
65 0
|
2月前
|
存储 Java
|
25天前
|
Java 编译器 测试技术
|
2月前
|
存储 Java
Java中ArrayList 元素的排序
本文提供了Java中根据`ArrayList`元素的某个属性进行排序的示例代码,包括实现`Comparable`接口和重载`compareTo`方法,然后使用`Collections.sort`方法进行排序。
|
2月前
|
存储 安全 Java
|
2月前
|
Java
|
2月前
|
存储 Java API
|
7天前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
21 2
|
11天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
|
15天前
|
缓存 Java 应用服务中间件
Java虚拟线程探究与性能解析
本文主要介绍了阿里云在Java-虚拟-线程任务中的新进展和技术细节。
下一篇
无影云桌面