Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. private Node findParent(Node current, Node del) {
  2. assert current != null;
  3. System.out.println(current.data.getName());
  4.  
  5. if (current.left == del || current.right == del) {
  6. return current;
  7. } else if (current.data.getName().compareTo(del.data.getName()) > 0) {
  8. current = findParent(current.left, del);
  9. } else if (current.data.getName().compareTo(del.data.getName()) < 0) {
  10. current = findParent(current.right, del);
  11. }
  12.  
  13. return current;
  14. }
  15.  
  16.  
  17. @Override
  18. public Delegate remove(String name) {
  19. Node del = findPos(root, name); //Find the specified node
  20. Node parent = findParent(root, del); //find the parent of that node.
  21. Node rep;
  22. if(del == root){
  23. root = null;
  24. }
  25. else{
  26. if (del.left == null && del.right == null) {
  27. if (parent.left == del) { //delete left subtree
  28. parent.left = null;
  29. } else {
  30. parent.right = null; //delete right subtree
  31. }
  32. } else if (del.left == null) { //replace current node with its right subtree
  33. parent.right = del.right;
  34. } else if (del.right == null) { //replace current node with its right subtree
  35. parent.left = del.left; //I get a null point exception :(
  36.  
  37. }
  38. }
  39. return null;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement