Как вставить новый узел в односвязный список, где у нас нет указателя, указывающего на его голову? - PullRequest
4 голосов
/ 25 октября 2011

Имеется указатель, который указывает на промежуточный узел (не головной, не хвостовой) в списке с одной ссылкой.Как вставить новый узел непосредственно перед узлом, указанным указателем?

Пример, учитывая односвязный список:

  A -> B -> C -> D -> E 

Учитывая указатель, указывающий на C (ptr = & C), и новый узел F, как получить

 A -> B -> F -> C -> D -> E 

Внимание: у нас нет указателей на A.

Спасибо

Ответы [ 2 ]

15 голосов
/ 25 октября 2011

Вы должны быть в состоянии реализовать это, вставив новый узел C справа и написав F в поле данных исходного узла C.

3 голосов
/ 25 октября 2011

Очевидно, это невозможно сделать. Если вам нужна эта возможность, используйте двусвязный список. В противном случае всегда передайте указатель на заголовок списка.

...