/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head==null){
            return null;
        }
        //申请一个新的头节点
        //ListNode newHead = new ListNode(0);
        ListNode cur = head.next;
        //断开头节点与后面节点的联系
        head.next =null;
        //tmp用于记录下一个后继节点的位置
        ListNode tmp  = cur;
        while(cur !=null){
//          记录当前cur的下一个位置
            tmp = cur.next;
            //头插法到前面
            cur.next = head;
            //将头节点前移
            head = cur;
            //cur重新指向tmp继续往前插
            cur = tmp;
        }
        return head;



       // return newHead.next;
    }
}