二叉搜索树的第k个结点

喜你入骨 提交于 2020-01-14 11:19:23

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

看到题目中提到
二叉搜索树按大小顺寻
则想到左序遍历得到的数是由小到大排列的

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


}

相关知识
二叉搜索树
树的基本知识
二叉树的知识
二叉查找树
平衡二叉树
红黑树
B树,B-树,B+树

二叉搜索树具有以下性质:

如果节点的左子树不空,则左子树上所有结点的值均小于等于它的根结点的值;
如果节点的右子树不空,则右子树上所有结点的值均大于等于它的根结点的值;
任意节点的左、右子树也分别为二叉查找树;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!