二叉搜索树的第K个结点
外界定义一个标识变量来记录中序访问到第几个节点,当访问到第k个节点是返回结果。注意第五行和第七行的i<k条件加上是为了在找到第K个数就终止递归,防止遍历整个二叉树。
int i = 0; TreeNode resNode = null; TreeNode KthNode(TreeNode pRoot, int k) { if (pRoot == null) return null; if (i < k && pRoot.left != null) KthNode(pRoot.left, k); if (++i == k) resNode = pRoot; if (i < k && pRoot.right != null) KthNode(pRoot.right, k); return resNode; }