206. Reverse Linked List

问题描述

Reverse a singly linked list.

Example:

Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
Follow up:

A linked list can be reversed either iteratively or recursively. Could you implement both?

思路

Iteratively的解法,时间、空间复杂度为O(n)。
用tail和head两个指针循环。head在原列表,tail在新列表。

    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if head == None:
            return None
        tail = ListNode(head.val)
        tail.next = None
        head = head.next
        while head!= None:
            tmp = ListNode(head.val)
            tmp.next = tail
            tail = tmp
            head = head.next
        return tail  
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容