题目链接:https://leetcode-cn.com/problems/reverse-linked-list/
1、题目描述
给你单链表的头节点 head
,请你反转链表,并返回反转后的链表。
2、算法分析
先创建 pre ,p结点指针分别指向前一个结点和后一个结点。
反转链表:
p = head.next; // p指向下一个结点 head.next = pre; // 反转方向 pre = head; // pre head 往下走 head = p;
3、代码实现
public ListNode reverse(ListNode head){
if(head == null){
return null
}
ListNode pre = null;
ListNode p = head;
while(head != null){
p = head.next;
head.next = pre;
pre = head;
head = p;
}
return pre;
}