给定一颗二叉搜索树,查找第k大的结点
public static int KthSmallest(TreeNode root, int k) { Stack<TreeNode> s = new Stack<TreeNode>(); TreeNode p = root; while (s.Count > 0 || p != null) { if (p != null) { s.Push(p); p = p.Left; } else { p = s.Pop(); --k; if (k == 0) { return p.value; } p = p.Right; } } return -1; }