也是用两个指针,左指针prev与右指针head同时向右移动,然后将这两个指针所指节点间的方向进行反向。

当循环结束时prev正好指向最后一个节点。 返回该节点即可。

 

python

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        prev = None
        while head:
            head.next, prev, head = prev, head, head.next
        return prev