File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -485,6 +485,41 @@ var deleteNode = function (root, key) {
485
485
};
486
486
```
487
487
488
+ 迭代
489
+ ``` javascript
490
+ var deleteNode = function (root , key ) {
491
+ const deleteOneNode = target => {
492
+ if (! target) return target
493
+ if (! target .right ) return target .left
494
+ let cur = target .right
495
+ while (cur .left ) {
496
+ cur = cur .left
497
+ }
498
+ cur .left = target .left
499
+ return target .right
500
+ }
501
+
502
+ if (! root) return root
503
+ let cur = root
504
+ let pre = null
505
+ while (cur) {
506
+ if (cur .val === key) break
507
+ pre = cur
508
+ cur .val > key ? cur = cur .left : cur = cur .right
509
+ }
510
+ if (! pre) {
511
+ return deleteOneNode (cur)
512
+ }
513
+ if (pre .left && pre .left .val === key) {
514
+ pre .left = deleteOneNode (cur)
515
+ }
516
+ if (pre .right && pre .right .val === key) {
517
+ pre .right = deleteOneNode (cur)
518
+ }
519
+ return root
520
+ }
521
+ ```
522
+
488
523
489
524
490
525
-----------------------
You can’t perform that action at this time.
0 commit comments