54. 二叉查找树的第 K 个结点

NowCoder

解题思路

利用二叉查找树中序遍历有序的特点。

  1. private TreeNode ret;
  2. private int cnt = 0;
  3. public TreeNode KthNode(TreeNode pRoot, int k) {
  4. inOrder(pRoot, k);
  5. return ret;
  6. }
  7. private void inOrder(TreeNode root, int k) {
  8. if (root == null || cnt >= k)
  9. return;
  10. inOrder(root.left, k);
  11. cnt++;
  12. if (cnt == k)
  13. ret = root;
  14. inOrder(root.right, k);
  15. }

54. 二叉查找树的第 K 个结点 - 图1