我是靠谱客的博主 壮观小虾米,最近开发中收集的这篇文章主要介绍二叉搜索树的第k个结点,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / 3 7 / / 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。

/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    int cnt = 0;
    TreeNode cnode = null;
    TreeNode KthNode(TreeNode pRoot, int k) {
        if (pRoot == null || k == 0)
            return null;
          
        pre(pRoot, k);
        return cnode;
    }
    
    void pre(TreeNode node, int k) {
        if (node == null)
            return ;
        
        pre(node.left, k);
        cnt ++;
        if (cnt == k) {
            cnode = node;
            return ;
        }
        pre(node.right, k);
        return ;
    }
}

 

最后

以上就是壮观小虾米为你收集整理的二叉搜索树的第k个结点的全部内容,希望文章能够帮你解决二叉搜索树的第k个结点所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部