【剑指offer】24.反转链表

速记: 三指针逐个反转 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

递归 TODO

猜你喜欢

转载自www.cnblogs.com/yudidi/p/12551681.html