链表 08. 反转单链表
题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 简单
方法一:迭代 时间复杂度O(N) 空间复杂度O(1)
def reverseList(head): """ :type head: ListNode :rtype: ListNode """ if head is None or head.next is None: return head cur = head pre = None while cur: tmp = cur.next cur.next = pre pre = cur cur = tmp return pre
方法二:递归 时间复杂度O(N) 空间复杂度O(N)
def reverseList(head): """ :type head: ListNode :rtype: ListNode """ if head is None or head.next is None: return head new_head = self.reverseList(head.next) head.next.next = head head.next = None return new_head

浙公网安备 33010602011771号