题目:输入一个链表,反转链表后,输出新链表的表头。
牛客网:链接
LeetCode同题:LeetCode206:Reverse Linked List
直接交换指针。
设置last为None,然后交换指针。更新last和head。
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
if not pHead or not pHead.next:
return pHead
last = None
while pHead:
tmp = pHead.next
pHead.next = last
last = pHead
pHead = tmp
return last
创建一个新链表,然后赋值。(不推荐)
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
result = []
while pHead:
result.insert(0, pHead.val)
pHead = pHead.next
if len(result) == 0:
return None
tmp = ListNode(result[0])
head = tmp
for each in result[1:]:
tmp.next = ListNode(each)
tmp = tmp.next
return head