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

示例 :

LeetCode:206. 反转链表_链表

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

 

最简单的方法,就是迭代。

    public static Node reverseList(Node head) {

        if(head==null || head.next==null){
            return head;
        }

        Node prev = null;
        while (head != null){  //假设当前链表head:A->B->C->null
            Node temp = head.next; //temp临时链表:B->C->null
            head.next = prev; //head指向prev后:A->null
            prev = head; //prev被赋值后:A->null
            head = temp; //head再次被赋值,进入下一次迭代:B->C->null
        }
        return prev;
    }