我是靠谱客的博主 激情太阳,这篇文章主要介绍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.二叉搜索树内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部