• + 0 comments

    Python 3.10+

    def compare_lists(llist1: SinglyLinkedListNode, llist2: SinglyLinkedListNode) -> bool:
        """Iteratively check two linked lists for equality."""
        while llist1 and llist2 and llist1.data == llist2.data:
            llist1 = llist1.next
            llist2 = llist2.next
        return llist1 is None and llist2 is None
    
    
    def compare_lists(llist1: SinglyLinkedListNode, llist2: SinglyLinkedListNode) -> bool:
        """Recursively check two linked lists for equality."""
        match llist1 is None, llist2 is None:
            case False, False:
                return (
                    compare_lists(llist1.next, llist2.next)
                    if llist1.data == llist2.data
                    else False
                )
            case True, True:
                return True
            case _:
                return False