速记: 三指针逐个反转 or 递归
题意理解
1->2->3->null
null<-1<-2<-3
三指针逐个反转
Q: 如何分析出需要3个指针
A:
cur用于遍历链表(表示当前需要反转的节点)。
pre,next是保存当前节点的前后节点, 防止链表断掉。
next的由来: cur一反转,则后续链表丢失。(nil<-1...2->3-nil)
pre的由来: cur需要指向前一个节点,而从cur本身是不能直到前一个节点的,所以要用pre来保存前一个节点: 比如此时2不知道前一个节点是1 (nil<-1 2(cur)->3(next)->nil)
Q: 迭代继续或终止条件
A: 直到curl==null则退出循环, 也就是cur!=nil则继续循环
Q: 主体步骤
A: // save next // reverse // move on