解决思路:共有三种情况,1.链表为空;2.链表中只有一个元素;3.链表中有多个元素。前两种情况直接返回入参;第三种情况,创建一个新的头节点和尾节点,每次循环将原链表中的指向反转,当最后两个节点反转时,注意新建头节点的指向

public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head==null){
            return head;
        }
        if(head.next==null){
            return head;
        }
        ListNode newtail=new ListNode(head.val);
        while(head.next.next!=null){
            ListNode newhead=new ListNode(head.next.val);
            newhead.next=newtail;
            head=head.next;
            newtail=newhead;
        }
        ListNode newHead=new ListNode(head.next.val);
        newHead.next=newtail;
        return newHead;
    }
}