我是靠谱客的博主 激情太阳,最近开发中收集的这篇文章主要介绍62.二叉搜索树的第K个结点(java),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述

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

解题思路

二叉搜索树按照中序遍历的顺序打印出来正好就是排序好的顺序。所以,按照中序遍历顺序找到第k个结点就是结果。

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

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

    }

}
*/
public class Solution {
    int x = 0;
    TreeNode KthNode(TreeNode pRoot, int k)
    {
        if(pRoot!=null)
        {
            TreeNode node = KthNode(pRoot.left,k);
            if(node!=null)
                return node;
            x++;
            if(x == k)
                return pRoot;
            node = KthNode(pRoot.right,k);
            if(node!=null)
                return node;
        }
        return null;
    }
}

 

最后

以上就是激情太阳为你收集整理的62.二叉搜索树的第K个结点(java)的全部内容,希望文章能够帮你解决62.二叉搜索树的第K个结点(java)所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部