此题目为力扣题库的链表题目
📌 文章目录:
题目:👇
1️⃣.题目解析
题目要求我们把链表反转,即把原来链表头是现在链表的尾,原来链表的尾是现在链表的头,我们可以定义一个前驱记录前一个结点的位置,一个 cur 遍历链表,实现链表反转即可 👇
2️⃣.代码实现
步骤一、判断链表是不是空,如果是空,链表无法进行反转,直接返回空对象
if (head == null){
return null;
}
步骤二、定义一个 cur 用于遍历链表,定义一个 prev 用于记录结点的前驱位置
ListNode cur = head;
ListNode prev = null;
步骤三、循环去遍历链表执行链表倒置操作,由于cur.next 会被覆盖掉,所以定义了一个 curNext 保存cur.next,具体反转操作如图:
while(cur != null){
ListNode curNext = cur.next;
cur.next = prev;
prev = cur;
cur = curNext;
}
步骤四、返回链表的头
return prev;
3️⃣.全部代码
class Solution {
public ListNode reverseList(ListNode head) {
if (head == null){
return null;
}
ListNode cur = head;
ListNode prev = null;
while(cur != null){
ListNode curNext = cur.next;
cur.next = prev;
prev = cur;
cur = curNext;
}
return prev;
}
}