2016-03-19 12 views
0

ノード2を前面から再起動し、スワップが機能するかもしれないと思うたびに、インデックスを1つ小さくします。 L J I OgetPreviousNodeを使用せずにこのLinkedListを試してみることをお勧めします。

public static void swap(Node one, Node two) { 
    String temp1, temp2; 
    temp1 = one.getData(); 
    temp2 = two.getData(); 
    two.setData(temp1); 
    one.setData(temp2); 
} 

public static void reverse(LinkedList list) { 
    int index = 0; 
    Node curr1 = list.getFront(); 
    Node curr2= list.getFront(); 
    for (int i = 0; i <= list.size()/2; i++) { 
     for (int j = 0; j <= list.size() - index; j++) { 
      curr2 = curr2.getNext(); 
      index++; 
     } 
     swap(curr1, curr2); 
     curr1 = curr1.getNext(); 
    } 
    } 

として
入力J I O Lとして 出力は任意の助けを大幅に

+0

あなただけjava.util.Collections.reverse()メソッドを使用することができませんか? – scana

答えて

0

をいただければ幸いこの機能はまた、あなたが達成しようとしている何のためにかなり複雑な表示されます。あなたが達成したいのはリストを逆にすることだけです。

"LJIOとしてJIOL出力として入力"

Collections.reverse(list);

あなたはこれをしたい場合は、一緒に行くことができます:あなたのコードに基づいて

list.add(0,list.removeLast());

0

、あなたはあなたを使用していますリンクされたリストの独自の実装だから、何らかの理由でそれを自分で実装したいと思っています。

public void ReverseLinkedList (LinkedList linkedList) 
{ 
    LinkedListNode start = linkedList.Head; 
    LinkedListNode temp = null; 

    // ------------------------------------------------------------ 
    // Loop through until null node (next node of the latest node) is found 
    // ------------------------------------------------------------ 

    while (start != null) 
    { 
     // ------------------------------------------------------------ 
     // Swap the “Next” and “Previous” node properties 
     // ------------------------------------------------------------ 

     temp = start.Next; 
     start.Next = start.Previous; 
     start.Previous = temp; 

     // ------------------------------------------------------------ 
     // Head property needs to point to the latest node 
     // ------------------------------------------------------------ 

     if (start.Previous == null) 
     { 
      linkedList.Head = start; 
     } 

     // ------------------------------------------------------------ 
     // Move on to the next node (since we just swapped 
     // “Next” and “Previous” 
     // “Next” is actually the “Previous” 
     // ------------------------------------------------------------ 

     start = start.Previous; 
    } 

    // ------------------------------------------------------------ 
    // That's it! 
    // ------------------------------------------------------------ 
} 

私はhttp://www.codeproject.com/Articles/27742/How-To-Reverse-a-Linked-List-Different-Waysからもらっ:

その場合は、次のコードを使用します。彼らはこの問題を解決する他の2つの方法を示しています。他のすべての場合には

、私は心からあなたがjava.utils.Collections.reverse()を使用することをお勧め:)

関連する問題