目的:
旨在记录在牛客网上刷题的过程,记录心得。
题目:
输入一个链表,反转链表后,输出新链表的表头。
思路:
先遍历一遍链表,将链表中的结点值存放在一个List中,反序输出List的元素值重新构建链表。链表创建的过程思路参考我另一篇博客《使用给定的List创建单链表》
代码:
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
if(pHead == None):
return None
plist = []
while pHead:
curP = pHead
plist.append(curP.val)
pHead = curP.next
print(plist)
Plen = len(plist)
NewPhead = ListNode(plist[Plen - 1])
curNode = NewPhead
ll = Plen - 1
while ll > 0:
tempNode = ListNode(plist[ll - 1])
tempNode.next = curNode.next
curNode.next = tempNode
curNode = curNode.next
ll -= 1
return NewPhead
# write code here
效果:
总结:
实现方法比较原始,也很容易想到,比较容易卡在链表创建的Python实现方法上,链表创建的思路。