题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
class Solution:
def ReverseList(self, head: ListNode) -> ListNode:
# write code here
if head is None or head.next is None:
return head
new_head = None
cur = head
while cur != None:
tmp = cur.next
cur.next = new_head
new_head = cur
cur = tmp
return new_head
解题思路记录:
1. 首先判断空链表或只有1个值的链表
2. 声明一个new链表 new_head初始化为None,声明一个cur初始化为head用于节点的移动
3. 使用tmp保存下一个节点的地址;
4. 当前节点的下一个节点指向新的链表(None为尾结点);
5.再将新链表的头节点指向当前节点,原链表的第一个节点实现翻转;
6.将当前节点指向原节点的下一个节点,重复上述步骤,实现所有节点的翻转。