题目
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
思考
法一:遍历链表逐个pop然后重新绘制链表
法二:使用递归。
实现
.
#Definition for singly-linked list.
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
if head == None:
return None
elif head.next == None:
return head
else:
l = []
while head:
l.append(head)
head = head.next
head = l.pop()
temp = head
while l:
node = l.pop()
node.next = temp.next
temp.next = node
temp = node
return head