File tree Expand file tree Collapse file tree 1 file changed +7
-18
lines changed Expand file tree Collapse file tree 1 file changed +7
-18
lines changed Original file line number Diff line number Diff line change @@ -348,31 +348,20 @@ export class BinarySearchTree<T> implements Iterable<T> {
348
348
const order = this . #compare( value , node . value ) ;
349
349
if ( order === 0 && returnIfFound ) return node ;
350
350
351
- if ( select === "higher" && order < 0 ) {
352
- if ( result === null ) {
353
- result = node ;
354
- continue ;
355
- }
356
-
357
- const nodeOrder = this . #compare( node . value , result . value ) ;
358
- if ( nodeOrder < 0 ) result = node ;
359
- } else if ( select === "lower" && order > 0 ) {
360
- if ( result === null ) {
361
- result = node ;
362
- continue ;
363
- }
364
-
365
- const nodeOrder = this . #compare( node . value , result . value ) ;
366
- if ( nodeOrder > 0 ) result = node ;
367
- }
368
-
369
351
let direction : Direction = order < 0 ? "left" : "right" ;
370
352
if ( select === "higher" && order === 0 ) {
371
353
direction = "right" ;
372
354
} else if ( select === "lower" && order === 0 ) {
373
355
direction = "left" ;
374
356
}
375
357
358
+ if (
359
+ ( select === "higher" && direction === "left" ) ||
360
+ ( select === "lower" && direction === "right" )
361
+ ) {
362
+ result = node ;
363
+ }
364
+
376
365
node = node [ direction ] ;
377
366
}
378
367
return result ;
You can’t perform that action at this time.
0 commit comments