第一种:递归

public ListNode ReverseList(ListNode head) {
        if(head==null ||head.next==null) return head;
        ListNode sec=ReverseList(head.next);
        head.next.next=head;
        head.next=null;
        return sec;
    }

第二种:循环(头插法)

public ListNode ReverseList(ListNode head) {
        if(head==null ||head.next==null) return head;
        ListNode pre=new ListNode(0);
        pre.next=null;
        while(head!=null){
            ListNode temp =head.next;
            head.next=pre.next;
            pre.next=head;
            head=temp;
        }
        return pre.next;
    }