Предположим, что есть два одинаково связанных списка, оба из которых пересекаются в какой-то точке и становятся единым связанным списком.
Указатели головы или начала обоих списков известны, но пересекающийся node не известен. Кроме того, количество узлов в каждом списке перед их пересечением неизвестно, и оба списка могут иметь его разные, то есть List1 может иметь n узлов до того, как он достигнет точки пересечения, а List2 может иметь m узлов, прежде чем он достигнет точки пересечения, где m и n могут быть
- m = n,
- m < n или
- m > n
Одним из известных или простых решений является сравнение каждого указателя node в первом списке с любым другим указателем node во втором списке, по которому соответствующие указатели node приведут нас к пересекающимся node. Но сложность времени в этом случае будет O (n 2), которая будет высокой.
Каков наиболее эффективный способ нахождения пересекающихся node?