题目:给你单链表的头节点head,请你反转链表,并返回反转后的链表。

输入:head=[1,2,3,4,5]
输出:[5,4,3,2,1]
 public ListNode reverseList() {
        if (head == null) {
        return head;
    }
    ListNode cur = head.next;
    head.next = null;
    while (cur != null) {
        ListNode curN = cur.next;
        cur.next = head;
        head = cur;
        cur = curN;
    }
    return head; 
理解:
以三个元素的链表举例,将头结点的下个节点设为cur,cur的下个节点设为curN。先将头节点的下一个置为null, cur的下一个指向head,头节点向前移动一个位置,一直保持在在链表的最前面,然后cur在想下一个节点进行相同的操作,直到cur=null,结束循环。图示如下:
 



















