Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private Node findParent(Node current, Node del) {
- assert current != null;
- System.out.println(current.data.getName());
- if (current.left == del || current.right == del) {
- return current;
- } else if (current.data.getName().compareTo(del.data.getName()) > 0) {
- current = findParent(current.left, del);
- } else if (current.data.getName().compareTo(del.data.getName()) < 0) {
- current = findParent(current.right, del);
- }
- return current;
- }
- @Override
- public Delegate remove(String name) {
- Node del = findPos(root, name); //Find the specified node
- Node parent = findParent(root, del); //find the parent of that node.
- Node rep;
- if(del == root){
- root = null;
- }
- else{
- if (del.left == null && del.right == null) {
- if (parent.left == del) { //delete left subtree
- parent.left = null;
- } else {
- parent.right = null; //delete right subtree
- }
- } else if (del.left == null) { //replace current node with its right subtree
- parent.right = del.right;
- } else if (del.right == null) { //replace current node with its right subtree
- parent.left = del.left; //I get a null point exception :(
- }
- }
- return null;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement