230. 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.
Example 1:
Input: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 Output: 1
Example 2:
Input: root = [5,3,6,2,4,null,null,1], k = 3
5
/ \
3 6
/ \
2 4
/
1
Output: 3
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public int kthSmallest(TreeNode root, int k) { 12 int[] arr = new int[2]; 13 helper(root, arr, k); 14 return arr[1]; 15 } 16 17 public void helper(TreeNode root, int[] arr, int k) { 18 if (root != null) { 19 helper(root.left, arr, k); 20 arr[0]++; 21 if (arr[0] == k) { 22 arr[1] = root.val; 23 return; 24 } 25 helper(root.right, arr, k); 26 } 27 } 28 }

浙公网安备 33010602011771号