反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
解题思路
很经典的问题,首先设置pre,cur,lat
三个指针
pre cur lat
null 1 -> 2 -> 3 -> 4 -> 5 -> null
接着cur.next = pre
pre cur lat
null <-1 2 -> 3 -> 4 -> 5 -> null
接着pre = cur
,cur = lat
,lat = lat.next
pre cur lat
null <-1 2 -> 3 -> 4 -> 5 -> null
重复上述操作直到lat=None
。
pre cur lat
null <-1 <- 2 <- 3 <- 4 5 -> null
最后cur.next = pre
即可。
class Solution:
def reverseList(self, head)