我是靠谱客的博主 曾经宝贝,最近开发中收集的这篇文章主要介绍二叉搜索树的第K大节点(Java实现),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


public class E54KthBSTNode {
    //二叉搜索树中第k个节点
    private static int index;
    public static BinaryTreeNode getKthNode(BinaryTreeNode root, int k){
        if (root == null)
            return null;
        index = k;
        return getKthNodeCore(root);
    }

    private static BinaryTreeNode getKthNodeCore(BinaryTreeNode root) {
        //采用二叉树的中序遍历顺序查找第k个节点
        BinaryTreeNode target = null;
        if (root.left != null)
            target = getKthNodeCore(root.left);
        if (target == null){
            if (index == 1)
                target = root;
            index--;
        }
        if (target == null && root.right != null)
            target = getKthNodeCore(root.right);
        return target;
    }

}

最后

以上就是曾经宝贝为你收集整理的二叉搜索树的第K大节点(Java实现)的全部内容,希望文章能够帮你解决二叉搜索树的第K大节点(Java实现)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部