给你单链表的头节点 head
,请你反转链表,并返回反转后的链表。
示例 1:
输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]
示例 2:
输入:head = [1,2] 输出:[2,1]
示例 3:
输入:head = [] 输出:[]
虚拟头节点法
新设一个链表 设置一个虚拟头节点再将链表倒叙头插即可
//使用头插法
ListNode dummy = new ListNode(0);
ListNode p = dummy, cur = head;
while(cur != null){
//从head摘下一个头
ListNode t = cur;
cur = cur.next; //cur移到下一个
t.next = p.next; //头插法插入
p.next = t;
}
return dummy.next;