给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 :
输入: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; }