230. 二叉搜索树中第K小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。
说明:
你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。
解题思路
利用二叉搜索书的中序遍历结果是升序的特点
在中序遍历的过程中判断当前数组是第几小,找到第k小时返回
运行结果
java代码
/** * 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 { public int kthSmallest(TreeNode root, int k) { build(root,k); return num; } int num; int size=0; public void build(TreeNode root,int k){ if(root == null) return; build(root.left,k); size++; if(size == k){ num=root.val; return; } build(root.right,k); } }