230. Kth Smallest Element in a BST
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public int kthSmallest(TreeNode root, int k) { int cnt = vis(root.left); if(k == cnt+1){ return root.val; }else if(k < cnt+1){ 从左子树找 return kthSmallest(root.left, k); }else{ //从右子树找 return kthSmallest(root.right, k - cnt - 1); } } //计算节点个数 public int vis(TreeNode root) { if (root == null) { return 0; } return vis(root.left) + vis(root.right) + 1; }
|
近期评论