剑指 Offer 54. 二叉搜索树的第k大节点 
题目
给定一棵二叉搜索树,请找出其中第k大的节点。
示例 1:
1 2 3 4 5 6 7
   | 输入: root = [3,1,4,null,2], k = 1    3   / \  1   4   \    2 输出: 4
   | 
 
示例 2:
1 2 3 4 5 6 7 8 9
   | 输入: root = [5,3,6,2,4,null,null,1], k = 3        5       / \      3   6     / \    2   4   /  1 输出: 4
   | 
 
限制:
1 ≤ k ≤ 二叉搜索树元素个数
题解
解这道题我们只需要清楚两个知识点:
二叉树一共三种遍历方式:
二叉搜索树的特性:右子节点比根节点大,左子节点比根节点小,且通过中序遍历所得到的序列,就是有序的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
   | 
 
 
 
 
 
 
 
  class Solution {     private int kthVal = 0, count = 0;     public int kthLargest(TreeNode root, int k) {                           traverse(root, k);         return kthVal;     }          private void traverse(TreeNode root, int k) {                  
                   if (root.right != null) {             traverse(root.right, k);         }                                             if (++count == k) {             kthVal = root.val;             return;         }                  if (root.left != null) {             traverse(root.left, k);         }     } }
 
  |