230. 二叉搜索树中第K小的元素:
题目链接 :230. 二叉搜索树中第K小的元素
题目:
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。
思路:
- 本题属于通过二叉搜索树性质得到有序序列类型题目。
- 根据中序遍历左根右,左子树元素大于右子树元素,那么可以得到树中第K小的元素。
AC代码:
class Solution {
int cnt=0;
int res;
public int kthSmallest(TreeNode root, int k) {
dfs(root,k);
return res;
}
void dfs(TreeNode node,int k)
{
if(node==null)
{
return ;
}
dfs(node.left,k);
cnt++;
if(cnt==k)
{
res=node.val;
}
dfs(node.right,k);
}
}