import java.util.Scanner;
public class swapHeadTail{
static llistNode insert(llistNode H,int data){
llistNode tmp = new llistNode();
tmp.data=data;
tmp.next=null;
if(H==null)
return tmp;
llistNode curr = new llistNode();
curr = H;
while(curr.next != null)
curr = curr.next;
curr.next = tmp;
return H;
}
public static void main(String[] args) {
llistNode H = new llistNode();
Scanner in = new Scanner(System.in);
llistNode tmp =new llistNode();
H=null;
do{
System.out.print("Enter data:");
H=insert(H,in.nextInt());
System.out.print("Enter 1 to continue: ");
}while (in.nextInt()==1);
tmp = H;
while(tmp != null){
System.out.print(tmp.data+"\t");
tmp = tmp.next;
}
System.out.println();
llistNode head = new llistNode();
llistNode headNext = new llistNode();
llistNode tailPrev = new llistNode();
llistNode tail = new llistNode();
head = H;
headNext = H.next;
tailPrev = H;
while(tailPrev.next.next != null)
tailPrev=tailPrev.next;
tail = tailPrev.next;
if ((tailPrev == head)&&(headNext == tail)){
head.next = null;
tail.next = head;
}
else{
tmp = head;
tmp.next = null;
tailPrev.next = tmp;
tail.next=headNext;
}
H=tail;
tmp = H;
while(tmp != null){
System.out.print(tmp.data+"\t");
tmp = tmp.next;
}
}
}
を参照。..簡単なコードの下に試してみてください。あなたのことが可能かもしれ不変であるlink.If単にあなたがそこに変更することなく、2つのノード間の値を変更することができますhttp://rawjava.blogspot.in/2015/04/java-program-to-swap-head-and-tail-of.html
ご参照ください:[なぜ「誰かが私を助けることはできますか?」されていない実際の質問?](http://meta.stackoverflow.com/q/284236)[デバッグ助けを求める質問(*「なぜISNをこのコードは動作していますか?*)には、目的の動作、特定の問題またはエラー、および質問自体の中でそれを再現するのに必要な最短コードが含まれていなければなりません。 (https://stackoverflow.com/help/on-topic)参照:[最小限で完全で検証可能なサンプルを作成する方法](https:// stackoverflow .com/help/mcve)。 – Turing85