diff --git a/linked_lists/README.md b/linked_lists/README.md
index 51ddc66..89ada1f 100644
--- a/linked_lists/README.md
+++ b/linked_lists/README.md
@@ -2,22 +2,69 @@
-* unlike an array, a list does not provide constant time access to an index (as it needs to interact through all k elements), however addition and removal of elements are constant time.
+* each node in a singly-linked list contains a valye and a reference fiedl to link to the next node. the head node (first node) usually represents the whole list.
+
+* unlike an array, a linked list does not provide constant time access to an index (as it needs to interact through all k elements), however addition and removal of elements are constant time.
+
+* nodes can be added at the beginning, head needs to be update (`current -> head` and `head = current`).
+
* to remove a node you set `prev.next` equal to `node.next`. if it's a double list, you also update `node.next` with `node.next.prev` to `node.prev` (and deallocate the memory).
+
+---
+
### detecting cycles
-* can be done with hash table or the two-pointer technique, where if there is no cycle, the faster pointer (going 2 steps) will stop at the end of the list, but if there is a cycle, the fast pointer will eventually meet the slow pointer (going 1 step). if there is no cycle, the faster pointer takes `N/2` to reach the end of the list (`N` being the length).
+* can be done with hash table or the two-pointer technique, where if there is no cycle, the faster pointer (going 2 steps) will stop at the end of the list, but if there is a cycle, the fast pointer will eventually meet the slow pointer (going 1 step).
+
+* if there is no cycle, the faster pointer takes `N/2` to reach the end of the list (`N` being the length).
----
-### `LinkedListFIFO.py`
+### reversing the list
+
+
+
+* keep track of the original head node and the new head node (for instance, with two pointers).
+
+
+
+```python
+def reverse_list(head):
+
+ if head is None:
+ return head
+
+ final_head = head
+
+ while head.next:
+
+ new_node = head.next
+ head.next = new_node.next
+ new_node.next = final_head
+ final_head = new_node
+
+ return final_head
+```
+
+
+
+
+
+
+----
+
+### some exercises in this dir
+
+
+
+#### `LinkedListFIFO.py`