public boolean remove(String target) {
        boolean ret = false;
        if (this.searchPrefix(new StringBuilder(target)) == IS_WORD_ONLY ||
                this.searchPrefix(new StringBuilder(target)) == IS_PREFIX_AND_WORD) {
            LinkedList curList = this.root;
            Node iter = curList.head;
            int targetIndex = 0;
            while (iter != null) {
                System.out.println(" char: " + iter.data);
                if (iter.data == target.toCharArray()[targetIndex]) {
                    if (targetIndex == target.length()-1 &&
                            iter.data == target.toCharArray()[target.length()-1] &&
                            isLastLetterInWord(iter)) {
                        //if last letter in word, delete sentinel
                        Node deletionTarget = iter.childNode;
                        Node prev = iter.childNode;
                        while (true) {
                            if (deletionTarget.data==SENTINEL) {
                                deletionTarget.data = ' ';
                                break;
                            }
                            prev = deletionTarget;
                            deletionTarget = deletionTarget.siblingNode;
                        }
                        ret = true;
                        break;
                    }
                    else {
                        //else descend to another level
                        iter = iter.childNode;
                        curList = iter.getCurrentList();
                    }
                }
                else {
                    iter = iter.siblingNode;
                }
                targetIndex++;
            }
        }
        else {

        }
        return ret;
    }