feat: 2025-10-28打卡
This commit is contained in:
58
230.kth-smallest-element-in-a-bst.java
Normal file
58
230.kth-smallest-element-in-a-bst.java
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* @lc app=leetcode id=230 lang=java
|
||||
*
|
||||
* [230] Kth Smallest Element in a BST
|
||||
*/
|
||||
|
||||
// @lc code=start
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* public class TreeNode {
|
||||
* int val;
|
||||
* TreeNode left;
|
||||
* TreeNode right;
|
||||
* TreeNode() {}
|
||||
* TreeNode(int val) { this.val = val; }
|
||||
* TreeNode(int val, TreeNode left, TreeNode right) {
|
||||
* this.val = val;
|
||||
* this.left = left;
|
||||
* this.right = right;
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
class Solution {
|
||||
|
||||
static class State{
|
||||
int result;
|
||||
int order;
|
||||
int targetOrder;
|
||||
boolean found;
|
||||
}
|
||||
|
||||
public int kthSmallest(TreeNode root, int k) {
|
||||
State st = new State();
|
||||
st.found = false;
|
||||
st.targetOrder = k;
|
||||
st.order = 0;
|
||||
travel(root, st);
|
||||
return st.result;
|
||||
}
|
||||
|
||||
private void travel(TreeNode node, State st) {
|
||||
if(node == null) {
|
||||
return;
|
||||
}
|
||||
travel(node.left, st);
|
||||
st.order++;
|
||||
if(st.found) {
|
||||
return;
|
||||
} else if(st.order == st.targetOrder) {
|
||||
st.result = node.val;
|
||||
st.found = true;
|
||||
} else {
|
||||
travel(node.right, st);
|
||||
}
|
||||
}
|
||||
}
|
||||
// @lc code=end
|
||||
|
||||
Reference in New Issue
Block a user