翻转单链表。
链表的操作,关键就在指针。当然使用栈很容易实现,但是我们有更好的方法,就是借助三个指针。
pre:当前元素的前一个元素的指针
cur:当前元素的指针
nextp:当前元素的下一个元素的指针
实现:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        pre = None
        cur = head
        while cur != None:
            nextp = cur.next
            cur.next = pre   #翻转操作
            pre = cur
            cur = nextp      
        return pre