230. 二叉搜索树中第K小的元素

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

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

示例 1:

输入: root = [3,1,4,null,2], k = 1
3
/ \
1 4
\
  2
输出: 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst

 1 public class KthSmallest {
 2     static class TreeNode {
 3         int val;
 4         TreeNode left;
 5         TreeNode right;
 6         TreeNode(int x) {
 7             val = x;
 8         }
 9     }
10     private int count = 0;
11     private int val;
12     public int kthSmallest(TreeNode root, int k) {
13         inOrder(root, k);
14         return val;
15     }    
16     public void inOrder(TreeNode node, int k) {
17         if(node == null) {
18             return;
19         }
20         inOrder(node.left, k);
21         count++;
22         if(count == k) {
23             val = node.val;
24             return;
25         }
26         inOrder(node.right, k);
27     }
28 }

 

posted @ 2019-07-01 01:07  往南的小燕子  阅读(224)  评论(0编辑  收藏  举报