如下
class Node{
int value;
Node next;
}
Node change(Node head){
}
需要讓change()函數實現鏈式表的反轉,head為第一個Node,後面可能有多個Node,
比如A->B->C變成C->B->A,結果返回C,要求使用java代碼寫出來,能夠正常運行
//翻轉鏈表的測試類,功能我就不說了,很明顯的。。。
public class myTest {
public static void main(String[] args) {
myTest t=new myTest();
Node l=t.new Node(0,null);
Scanner in=new Scanner(System.in);
Node nodelist=l.init(in.nextInt());
l.display(nodelist);
nodelist=l.change(nodelist);
l.display(nodelist);
in.close();
}
class Node
{
private int value;
private Node next;
public Node(int value,Node next)
{
this.value=value;
this.next=next;
}
public Node init(int num)
{
Node temp=new Node(0,null);
Node p=temp;
Scanner in=new Scanner(System.in);
for(int i=0;i<num;i++)
{
int value=in.nextInt();
Node t=new Node(value,null);
p.next=t;
p=p.next;
}
in.close();
return temp.next;
}
public Node change(Node head)
{
Node newHead=new Node(0,head);
Node last;
for(last=newHead.next;last.next!=null;last=last.next);
while(newHead.next!=last)
{
Node temp=newHead.next;
newHead.next=temp.next;
temp.next=last.next;
last.next=temp;
}
return newHead.next;
}
public void display(Node head)
{
for(Node t=head;t!=null;t=t.next)
System.out.print(t.value+" ");
System.out.println();
}
}
}