File tree 1 file changed +19
-30
lines changed
scripts/algorithms/K/Kth Smallest Element in a BST
1 file changed +19
-30
lines changed Original file line number Diff line number Diff line change 1
- /**
2
- * Definition for a binary tree node.
3
- * public class TreeNode {
4
- * int val;
5
- * TreeNode left;
6
- * TreeNode right;
7
- * TreeNode() {}
8
- * TreeNode(int val) { this.val = val; }
9
- * TreeNode(int val, TreeNode left, TreeNode right) {
10
- * this.val = val;
11
- * this.left = left;
12
- * this.right = right;
13
- * }
14
- * }
15
- */
1
+ // Runtime: 0 ms (Top 100.0%) | Memory: 44.10 MB (Top 76.35%)
2
+
16
3
class Solution {
17
- int element ,count ;
18
-
4
+ private int count = 0 ;
5
+ private int result = 0 ;
6
+
19
7
public int kthSmallest (TreeNode root , int k ) {
20
- inorderTraversal (root ,k );
21
- return element ;
8
+ inorderTraversal (root , k );
9
+ return result ;
22
10
}
23
-
24
-
25
- public void inorderTraversal (TreeNode root ,int k ){
26
- if (root .left != null ){
27
- inorderTraversal (root .left ,k );
11
+
12
+ private void inorderTraversal (TreeNode node , int k ) {
13
+ if (node == null || count >= k ) {
14
+ return ;
28
15
}
16
+
17
+ inorderTraversal (node .left , k );
18
+
29
19
count ++;
30
- if (count ==k ){
31
- element = root .val ;
32
- }
33
-
34
- if (root .right != null ){
35
- inorderTraversal (root .right ,k );
20
+ if (count == k ) {
21
+ result = node .val ;
22
+ return ;
36
23
}
24
+
25
+ inorderTraversal (node .right , k );
37
26
}
38
27
}
You can’t perform that action at this time.
0 commit comments