给你单链表的头节点 head
,请你反转链表,并返回反转后的链表。
示例 1:
输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]
示例 2:
输入:head = [1,2] 输出:[2,1]
示例 3:
输入:head = [] 输出:[]
class Solution {public ListNode reverseList(ListNode head) {if (head == null || head.next == null) {return head;}ListNode prev = null; // 前一个节点ListNode current = head; // 当前节点ListNode nextNode = null; // 下一个节点// 遍历链表进行反转while (current != null) {nextNode = current.next; // 保存下一个节点current.next = prev; // 当前节点的next指向前一个节点prev = current; // 前一个节点指向当前节点current = nextNode; // 当前节点移动到下一个节点}return prev; // prev会是新的头结点}
}