File tree Expand file tree Collapse file tree 1 file changed +17
-17
lines changed
Expand file tree Collapse file tree 1 file changed +17
-17
lines changed Original file line number Diff line number Diff line change 2222
2323### 1. 迭代
2424
25- 1 . 使用两个指针 ` pre ` 和 ` cur ` 进行迭代。` pre ` 在 ` cur ` 前面 。初始时,` cur ` 指向 ` None ` ,` pre ` 指向 ` head ` 。
25+ 1 . 使用两个指针 ` cur ` 和 ` pre ` 进行迭代。` pre ` 指向 ` cur ` 前一个节点位置 。初始时,` pre ` 指向 ` None ` ,` cur ` 指向 ` head ` 。
2626
27- 2 . 将 ` cur ` 和 ` pre ` 的前后指针进行交换,指针更替顺序为:
28- 1 . 使用 ` next ` 指针保存前面节点 ` pre ` 的后一个节点,即 ` next = pre .next ` ;
29- 2 . 断开前面节点 ` pre ` 的后一节点链接,将 ` pre ` 的 ` next ` 指针指向当前节点 ` cur ` ,即 ` pre .next = cur ` ;
30- 3 . ` cur ` 向前移动一步,移动到 ` pre ` 位置,即 ` cur = pre ` ;
31- 4 . ` pre ` 向前移动一步,移动到之前 ` next ` 指针保存的位置,即 ` pre = next` 。
27+ 2 . 将 ` pre ` 和 ` cur ` 的前后指针进行交换,指针更替顺序为:
28+ 1 . 使用 ` next ` 指针保存当前节点 ` cur ` 的后一个节点,即 ` next = cur .next ` ;
29+ 2 . 断开当前节点 ` cur ` 的后一节点链接,将 ` cur ` 的 ` next ` 指针指向前一节点 ` pre ` ,即 ` cur .next = pre ` ;
30+ 3 . ` pre ` 向前移动一步,移动到 ` cur ` 位置,即 ` pre = cur ` ;
31+ 4 . ` cur ` 向前移动一步,移动到之前 ` next ` 指针保存的位置,即 ` cur = next` 。
32323 . 继续执行第 2 步中的 1、2、3、4。
33- 4 . 最后等到 ` pre ` 遍历到链表末尾,即 ` pre == None` ,时,` cur ` 所在位置就是反转后链表的头节点,返回新的头节点 ` cur ` 。
33+ 4 . 最后等到 ` cur ` 遍历到链表末尾,即 ` cur == None` ,时,` pre ` 所在位置就是反转后链表的头节点,返回新的头节点 ` pre ` 。
3434
3535使用迭代法反转链表的示意图如下所示:
3636
37- ![ ] ( https://qcdn.itcharge.cn/images/20220110102335 .png )
37+ ![ ] ( https://qcdn.itcharge.cn/images/20220111133639 .png )
3838
3939### 2. 递归
4040
5050
5151使用递归法反转链表的示意图如下所示:
5252
53- ![ ] ( https://qcdn.itcharge.cn/images/20220110112149 .png )
53+ ![ ] ( https://qcdn.itcharge.cn/images/20220111134246 .png )
5454
5555## 代码
5656
5959``` Python
6060class Solution :
6161 def reverseList (self , head : ListNode) -> ListNode:
62- cur = None
63- pre = head
64- while pre != None :
65- next = pre .next
66- pre .next = cur
67- cur = pre
68- pre = next
69- return cur
62+ pre = None
63+ cur = head
64+ while cur != None :
65+ next = cur .next
66+ cur .next = pre
67+ pre = cur
68+ cur = next
69+ return pre
7070```
7171
72722 . 递归
You can’t perform that action at this time.
0 commit comments