二叉树查找第k个最小元素,找出二叉搜索树第k小的节点
对于我这种小渣渣来说,刚看题目的时候,嗯,懂了,但是看例题的时候,就迷茫了。这是什么意思?之前有点迷茫就扫了一眼别人的代码,贴上来之后可以自己复习。
void traverse(struct treenode * root,intk,int*mid,int*rank){
if(root==NULL){ return;}
遍历(左根,k,mid,rank);//遍历左边的子树
*秩=1;
If(k==*rank)//如果执行次数与k相同,赋值并退出。
{
*mid=root-
返回;
}
遍历(根右,k,mid,rank);//遍历右边的子树
}
intkthSmallest(struct treenode * root,intk)
{
intmid=0,rank=0;
遍历(根,k,mid,秩);
printf(mid=%d ,mid);
returnmid
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。