【python3】leetcode 206. Reverse Linked List (easy)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maotianyi941005/article/details/85990783

206. Reverse Linked List (easy)

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?

太久没写链表了 而且还是用python,先随意写个,感觉哪里 怪怪的,,当然 新建了一个单链表其实不太符合题意,后面写iterative和recursive的解法

# 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
        """
        valList = []
        if not head:return []
        while(head):
            valList.append(head.val)
            head = head.next
        valList.reverse()
        revhead = ListNode(valList[0])
        for i in range(1,len(valList)):
            node = ListNode(valList[i])
            if i == 1:revhead.next = node
            else: prenode.next = node
            prenode = node
        return revhead

1 iterative

# 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
        """
        cur = head
        pre = None
        while(cur != None):
            nxt = cur.next
            cur.next = pre
            pre = cur
            cur = nxt
        return pre

猜你喜欢

转载自blog.csdn.net/maotianyi941005/article/details/85990783