看了下以前的提交记录,发现有段这样的代码
int get_sub(int k) {
if(!tr[k].s[0]) return -1;
if(tr[k].ct>1) return tr[k].key;
int u=tr[k].s[0];
while(tr[u].s[1]) u=tr[u].s[1];
return tr[u].key;
}
int get_pre(int k) {
if(!tr[k].s[1]) return -1;
if(tr[k].ct>1) return tr[k].key;
int u=tr[k].s[1];
while(tr[u].s[0]) u=tr[u].s[0];
return tr[u].key;
}
发现我找前驱后继的时候甚至没有把k旋转到根,为啥会对捏