版权声明:Tian Run https://blog.csdn.net/u013908099/article/details/86169716
题目
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
例:
输入:1->2->3->4->5->None
输出:5->4->3->2->1->None
思路
- 双指针遍历链表,将当前节点的next设为前一个节点。注意保存当前节点的next来遍历。
- 时间复杂度:O(n)
- 空间复杂度:O(1)
代码
def reverse_list(head):
"""
:param head: head
:return: new head
"""
node = head
pre = None
while node:
node.next, pre, node = pre, node, node.next
return pre
思考
同一题。