Отмена односвязного списка в C #

Я пытаюсь перевернуть связанный список. Вот код, который я придумал:

 public static void Reverse(ref Node root)
 {
      Node tmp = root;
      Node nroot = null;
      Node prev = null;

      while (tmp != null)
      {
          //Make a new node and copy tmp
          nroot = new Node();    
          nroot.data = tmp.data;

          nroot.next = prev;
          prev = nroot;   
          tmp = tmp.next;
       }
       root = nroot;            
  }

Он работает хорошо. Интересно, можно ли избежать создания нового узла. Хотел бы получить предложения по этому поводу.

27
задан Olivier Rogier 9 October 2019 в 02:05
поделиться