警示后人
查看原帖
警示后人
520544
Phrvth楼主2024/7/18 20:02

如果你区间置 0 使用了丢弃左右儿子的写法

那么在找右边的第一个 1 的时候不能写

if (! cur) return 0;

因为此时有可能进入被丢弃的节点。

它为什么是对的呢?是因为如果 cur=0cur=0,那么此时什么条件都不满足,要么 x 比 mid 大往右跳,要么不符合条件往左跳,此时一定能递归到 x 并返回()

2024/7/18 20:02
加载中...