if(!root) return 0;
else if(tree[root].val==x) return tree[tree[root].v[0]].size+1;
else if(tree[root].val<x) return Rank(tree[root].v[0],x);
else if(tree[root].val>x) return tree[tree[root].v[0]].size+1+Rank(tree[root].v[1],x);
int l=0,r=0,k;
split(root,x,l,r);
k=tree[l].size+1;
merge(root,l,r);
return k;
关于使用递归写法和直接用split、merge函数,上面的是错的(WA16),下面的是对的(AC),请问是我打挂了还是本来递归就不对(但是前驱后继改成递归是对的)
代码