作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用递归顺序遍历来查找树中 kth
节点的值。
下面的代码是用递归完成的,但我的实现速度太慢了。
有人可以给我提示如何让它更快吗? (reihe
和pos
是类变量,都是从0开始,我把最后的结果保存在pos
中)。
这是我到目前为止所做的,非常感谢任何帮助:
void valueAtPosition(int k) {
if(this.left!=null){
left.valueAtPosition(k);
}
if(reihe++==k){
pos=this.elem;
}
else if(this.right!=null){
right.valueAtPosition(k);
}
}
最佳答案
删除 reihe
的需要(我假设它不是英文的,因为它对我来说作为变量名毫无意义)。我已将变量 k 作为返回值传递。当它达到 0 时,我返回当前值并停止搜索。
int valueAtPosition(int k) {
if(this.left!=null k >= 0){
k = left.valueAtPosition(k);
}
if(k == 0){
pos=this.elem;
}
k--;
if(this.right!=null && k > 0){
k = right.valueAtPosition();
}
return k;
}
关于java - 树遍历 - 中序位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30235021/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!