题目描述
输入一个链表,反转链表后,输出新链表的表头。
代码实现
# -*- 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 qHead==None or qHead.next==None:
return qHead
qHead=None
while pHead:
tmp=ListNode(pHead.val)
tmp.next=qHead
qHead=tmp
pHead=pHead.next
return qHead
'''
#第二种方法:递归
if pHead==None or pHead.next==None:
return pHead
qHead=None
qHead=self.ReverseList(pHead.next)
pHead.next.next=pHead
pHead.next=None
return qHead
这个题得难点估计就是对链表得操作了,断链形成新链。
使用递归,理解里边得运行过程有一点迷惑。