public boolean equals(SinglyLinkedList otherList) {
		/* if two sizes are different, return false */
		if (otherList.size() != numElements) {
			return false;
		}

		SingleNode cursor1 = this.head;
		SingleNode cursor2 = otherList.head;

		/* Traverse two lists */
		while (cursor1 != null && cursor2 != null) {
			if (!cursor1.data.equals(cursor2.data)) {
				return false;
			}
			cursor1 = cursor1.next;
			cursor2 = cursor2.next;
		}

		return true;
	}