Advertisement
mhelmsta

Untitled

Sep 25th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.99 KB | None | 0 0
  1. private T removeHelper(BSTNode<T> parent, T data) {
  2.         T output = null;
  3.         if (parent == null) {
  4.             throw new NoSuchElementException("element not found");
  5.         }
  6.         if (parent == root && root.getData().compareTo(data) == 0) {
  7.  
  8.             if (parent.getRight() == null) {
  9.                 parent = parent.getLeft();
  10.             } else if (parent.getLeft() == null) {
  11.                 parent = parent.getRight();
  12.             } else {
  13.                 parent.setData(successor(root));
  14.             }
  15.         } else if (data.compareTo(parent.getData()) < 0) {
  16.             if (parent.getLeft() == null) {
  17.                 return null;
  18.             } else if (parent.getLeft().getData().compareTo(data) == 0) {
  19.                 output = parent.getLeft().getData();
  20.                 if (parent.getLeft().getRight() == null) {
  21.                     parent.setLeft(parent.getLeft().getLeft());
  22.                 } else if (parent.getLeft().getLeft() == null) {
  23.                     parent.setLeft(parent.getLeft().getRight());
  24.                 } else {
  25.                     parent.getLeft().setData(successor(parent.getLeft()));
  26.                 }
  27.  
  28.             } else {
  29.                 output = removeHelper(parent.getLeft(), data);
  30.             }
  31.         } else {
  32.             if (parent.getRight() == null) {
  33.                 return null;
  34.             } else if (parent.getRight().getData().compareTo(data) == 0) {
  35.                 output = parent.getRight().getData();
  36.                 if (parent.getRight().getLeft() == null) {
  37.                     parent.setRight(parent.getRight().getRight());
  38.                 } else if (parent.getRight().getRight() == null) {
  39.                     parent.setRight(parent.getRight().getLeft());
  40.                 } else {
  41.                     parent.getRight().setData(successor(parent.getRight()));
  42.                 }
  43.             } else {
  44.                 output = removeHelper(parent.getRight(), data);
  45.             }
  46.         }
  47.         return output;
  48.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement