描述
输入一个链表,反转链表后,输出新链表的表头。
想了半会没个好用的思路,试图理解讨论组的精华题解。
首先是遍历链表,把1的next置为None,2的next置为1,以此类推,5的next置为4。得到反转链表。需要考虑链表只有1个元素的情况。
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
if pHead==None or pHead.next==None:
return pHead
pre = None
cur = pHead
while cur!=None:
temp = cur.next
cur.next = pre
pre = cur
cur = temp
return pre
代码开始部分if语句的判断就是考虑到链表只有一个元素的情况,就返回头结点。
如果有一个以上的元素,跟着代码一步步走的话:
最后输出pre而不是cur是因为最后一次迭代后cur已经指向None了,而pre是完整的反向链表。