描述
输入一个链表,反转链表后,输出新链表的表头。
想了半会没个好用的思路,试图理解讨论组的精华题解。
首先是遍历链表,把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是完整的反向链表。
本文详细介绍了如何使用Python反转链表,通过设置临时变量和改变节点的next指针实现。首先检查链表是否为空或只有一个元素,然后遍历链表,将每个节点的next指针指向前一个节点,最后返回新的头节点。代码中特别注意了最后一个节点的处理,即返回pre而非cur,因为cur在最后会变为None。

172万+

被折叠的 条评论
为什么被折叠?



