diff --git a/cs172/Lect07/hello.py b/cs172/Lect07/hello.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/cs172/Lect07/linkedlist.py b/cs172/Lect07/linkedlist.py
new file mode 100644
index 0000000000000000000000000000000000000000..6acfabade33da1ff8b60191a3b25a3ec87263e4e
--- /dev/null
+++ b/cs172/Lect07/linkedlist.py
@@ -0,0 +1,51 @@
+from node import Node
+
+class LinkedList:
+    
+    def __init__(self):
+        self.__head = None
+        self.__tail = None
+        
+    def isEmpty(self):
+        return self.__head is None
+        
+    def append(self, value):
+        if self.isEmpty():
+            self.__head = Node(value)
+            self.__tail = self.__head
+        else:
+            self.__tail.setNext(Node(value))
+            self.__tail = self.__tail.getNext()
+    
+    def __str__(self):
+        #return str(self.__head)
+        myStr = ''
+        current = self.__head
+        while current is not None:
+            myStr += str(current.getData()) + " --> "
+            current = current.getNext()
+        myStr += '🛑'
+        return myStr
+    
+    def __len__(self):
+        if self.isEmpty():
+            return 0
+        else:
+            count = 1
+            # Traverse
+            here = self.__head
+            while here.getNext() is not None:
+                here = here.getNext()
+                count += 1
+            return count
+            
+if __name__ == "__main__":
+    myList = LinkedList()
+    print(myList.isEmpty())
+    print(len(myList))
+    myList.append("A")
+    print(len(myList))
+    myList.append("B")
+    myList.append("C")
+    print(myList.isEmpty())
+    print(myList)
\ No newline at end of file
diff --git a/cs172/Lect07/node.py b/cs172/Lect07/node.py
new file mode 100644
index 0000000000000000000000000000000000000000..195b3b3d2d670662a70b815971be93dabd1b3e63
--- /dev/null
+++ b/cs172/Lect07/node.py
@@ -0,0 +1,31 @@
+
+class Node:
+    
+    def __init__(self, data, next=None):
+        self.__data = data
+        self.__next = next
+        
+    def getData(self):
+        return self.__data
+    
+    def getNext(self):
+        return self.__next
+    
+    def setNext(self, next):
+        self.__next = next
+        
+    def __str__(self):
+        return "A node containing " + str(self.getData()) + \
+                  " whose next is " + str(self.getNext())
+        
+if __name__ == "__main__":
+    myNode = Node("A")
+    print(myNode.getData())
+    print(myNode.getNext())
+    print(myNode)
+    
+    yourNode = Node("Z", myNode)
+    
+    print(yourNode)
+    
+    #print(yourNode.getNext().getData())
\ No newline at end of file