LinkedList/intersection_of_lists library

🔗 Intersection of Two Linked Lists Algorithm

Efficient algorithm to find the intersection point of two linked lists. Uses multiple approaches including length difference and two-pointer technique.

Time Complexity: O(n + m) where n and m are the lengths of the lists Space Complexity: O(1)

Functions

getIntersectionNode<T>(LinkedListNode<T>? headA, LinkedListNode<T>? headB) → LinkedListNode<T>?
Finds the intersection point of two linked lists
getIntersectionNodeOptimized<T>(LinkedListNode<T>? headA, LinkedListNode<T>? headB) → LinkedListNode<T>?
Finds the intersection point using length and two-pointer technique
getIntersectionNodeTwoPointer<T>(LinkedListNode<T>? headA, LinkedListNode<T>? headB) → LinkedListNode<T>?
Finds the intersection point using two-pointer technique
getIntersectionNodeWithHashSet<T>(LinkedListNode<T>? headA, LinkedListNode<T>? headB) → LinkedListNode<T>?
Finds the intersection point using hash set approach
getIntersectionNodeWithInfo<T>(LinkedListNode<T>? headA, LinkedListNode<T>? headB) → Map<String, dynamic>
Finds the intersection point and returns additional information
getLength<T>(LinkedListNode<T>? head) → int
Helper function to get the length of a linked list