from linked_list import LinkedList, Node def loop_detection(linkedList): node = linkedList.head previousNodes = [] while node is not None: for pn in previousNodes: if node is pn: print(node.data) return previousNodes.append(node) node = node.nextNode linkedList = LinkedList() aNode = Node('A', None) bNode = Node('B', None) cNode = Node('C', None) dNode = Node('D', None) eNode = Node('E', cNode) linkedList.appendRawNodeToTail(aNode) linkedList.appendRawNodeToTail(bNode) linkedList.appendRawNodeToTail(cNode) linkedList.appendRawNodeToTail(dNode) linkedList.appendRawNodeToTail(eNode) loop_detection(linkedList)
return node = node.nextNode print("No match") return linkedListOne = LinkedList() aNode = Node('A', None) bNode = Node('B', None) cNode = Node('C', None) dNode = Node('D', None) eNode = Node('E', None) linkedListOne.appendRawNodeToTail(aNode) linkedListOne.appendRawNodeToTail(bNode) linkedListOne.appendRawNodeToTail(cNode) linkedListOne.appendRawNodeToTail(dNode) linkedListOne.appendRawNodeToTail(eNode) linkedListTwo = LinkedList() fNode = Node('F', None) gNode = Node('G', None) hNode = Node('H', None) iNode = Node('I', dNode) linkedListTwo.appendRawNodeToTail(fNode) linkedListTwo.appendRawNodeToTail(gNode) linkedListTwo.appendRawNodeToTail(hNode)