public boolean delete(Node n) {
		// case 1
		if (head == null)
			return false;

		if (head.equals(n)) {
			// case 2
			if (head.equals(tail)) {
				head = null;
				tail = null;
			} else {
				// case 3
				Node newHead = head.next;
				head.next = null;
				head = newHead;
			}
			return true;
		}
		Node temp = head;
		while (temp.next != null && !temp.next.equals(n))
			temp = temp.next;
		if (temp.next != null) {
			if (temp.next.equals(tail)) {
				// case 4
				tail = temp;
			}
			// case 5
			temp.next = temp.next.next;
			return true;
		}
		// case 6
		return false;
	}