Advertisement
Aldin-SXR

delete()

May 12th, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.81 KB | None | 0 0
  1. /* Private delete() method */
  2. private Node<Key, Value> delete(Node<Key, Value> x, Key key) {
  3.     if (x == null) {                                                // 2
  4.         return null;                                                // 2
  5.     }
  6.        
  7.     int cmp = key.compareTo(x.key);                                 // 3
  8.     if (cmp < 0) {                                                  // 4
  9.         x.left = delete(x.left, key);                               // 4
  10.     } else if (cmp > 0) {                                           // 5
  11.         x.right = delete(x.right, key);                             // 5
  12.     } else {                                                        // 6
  13.         if (x.right == null) {                                      // 6
  14.             return x.left;                                          // 6
  15.         }
  16.         if (x.left == null) {                                       // 7
  17.             return x.right;                                         // 7
  18.         }
  19.            
  20.         Node<Key, Value> t = x;                                     // 8
  21.         x = findMin(t.right);                                       // 8
  22.         x.right = deleteMin(t.right);                               // 8
  23.         x.left = t.left;                                            // 8
  24.     }
  25.     x.size = 1 + size(x.left) + size(x.right);                      // 9
  26.     return x;                                                       // 10
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement