二叉搜索树的第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;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
08-20 19:41
那一天的Java_J...:简历完全流水账,学生思维很严重,还有很大的优化空间,可以多看看牛客的简历。
点赞 评论 收藏
分享
08-19 19:57
石河子大学 C++
企鹅百度字节的孝子:为啥本科只有两年啊
校招求职吐槽
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务