我试图找到一种方法来找到不在二叉搜索树中的最小正 ([0, INT_MAX)) (最大整数) 值。树具有所有正整数。我正在考虑沿着树的左侧向下移动。然后创建一个 struct value ,如果它是最小值struct { int data; bool found; };
,我会返回。t/f
我通过遍历左侧来做到这一点,如果 root->data + 1 > left->data,则返回
左->数据+ 1
, 否则向右。那么如果
根-> 数据 + 1 < 右-> 数据
, 那么return root->data + 1
. 否则root->data or right->data
,如果 right 不为 null,则返回,找到的值为 false。我还必须考虑树中的最小值是否不为 0,然后返回 0。我不确定这是否是最好的方法。
谢谢你的帮助。
编辑:对不起,我昨晚写的,当时我真的很累。我在循环中使用它,因此每次将其放入数组中会占用太多时间。我正在使用二叉搜索树,因此每次通过循环我只需插入和删除 1 次即可完成,用最少的时间来查找不在树中的最小值。