LeetCode 206 _ 反转链表

1. 题目描述

2. 代码

1 class Solution:
2     def reverseList(self, head: ListNode) -> ListNode:
3         temp = ListNode(-1)
4         while head != None:
5             nextnode = head.next  #保存当前节点的next
6             head.next = temp.next #修改当前节点的next为前一个节点,即修改链接指向前一个节点
7             temp.next = head #修改temp指向当前节点
8             head = nextnode #head节点往后移一位
9         return temp.next

思路: 

1. 先定义一个temp, 然后temp.next指向none.

2. 然后保存当前节点到下一个节点的链接, 也就是nextnode=head.next.

3. 然后让当前节点head指向temp.next, 也就是none, 这一步就是修改了链接, 指向前一个节点.

4. 然后再让temp.next指向当前的head节点, 也就是下一次要指向的节点.

5. 最后再把head往后移一位, 这样一次循环就完成了.

以下2张图片为解题过程.

 

原文地址:https://www.cnblogs.com/vvzhang/p/13773618.html