leetcode打卡第一天
https://leetcode-cn.com/problems/reverse-linked-list/
代码模板:
//反转链表就按照这个模板背就好了
class Solution {
public ListNode reverseList(ListNode head) {
ListNode pre = null;//开始指向头节点前面的点,所以为空
ListNode root = head;//开始指向头节点
while(root!=null){
//两两节点取出处理,next指向链表后面的节点,root指向前面的节点
ListNode next = root.next;
root.next = pre;
pre = root;
root = next;
}
return pre;
}
}
下面是简单的图解:
下面是链表的初始状态
下面是链表反转后的状态
①第一次进入循环时候的状态(next刚创建的时候)
②第二次进入循环时候的状态(next刚创建的时候)
③第三次进入循环时候的状态(next刚创建的时候)
④第四次进入循环时候的状态(next刚创建的时候)
到现在为止,链表就已经完全反转了,pre就是新的头节点