diff --git a/18.py b/18.py
new file mode 100644
index 0000000000000000000000000000000000000000..93187e28d12ff91a7810c7cc38aa051c5e15d14a
--- /dev/null
+++ b/18.py
@@ -0,0 +1,17 @@
+# Write a function solve that generates the first n rows of Pascal's Triangle.
+
+def solve(rows):
+    triangle = []
+    for i in range(0, rows):
+        row = []
+        row.append(1)
+        if i == 1:
+            row.append(1)
+        elif i > 1:
+            for j in range(0, i-1):
+                first = triangle[i-1][j]
+                second = triangle[i-1][j+1]
+                row.append(first + second)
+            row.append(1)
+        triangle.append(row)
+    return triangle
diff --git a/20.py b/20.py
new file mode 100644
index 0000000000000000000000000000000000000000..6747417c5caa7554009525f33ade49846b9254c3
--- /dev/null
+++ b/20.py
@@ -0,0 +1,15 @@
+# Write a function that, given the head of a singly linked list, reverses the list. 
+# Return the root node of the reversed list.
+
+def solve(head):
+    current = head
+    prev = None
+
+    while current:
+        temp_next = current.next
+        current.next = prev
+
+        prev = current
+        current = temp_next
+    return prev
+