数据结构的问题,反转链式表

如下
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();
    }
}

}