File tree Expand file tree Collapse file tree 1 file changed +31
-26
lines changed Expand file tree Collapse file tree 1 file changed +31
-26
lines changed Original file line number Diff line number Diff line change 9
9
10
10
** 要求** :将该单链表进行反转。可以迭代或递归地反转链表。
11
11
12
- 比如 :
12
+ ** 说明 ** :
13
13
14
- ```
15
- 翻转前:
16
- 1->2->3->4->5->NULL
17
- 反转后:
18
- 5->4->3->2->1->NULL
14
+ - 链表中节点的数目范围是 $[ 0, 5000] $。
15
+ - $-5000 \le Node.val \le 5000$。
16
+
17
+ ** 示例** :
18
+
19
+ ``` Python
20
+ 输入 head = [1 ,2 ,3 ,4 ,5 ]
21
+ 输出 [5 ,4 ,3 ,2 ,1 ]
22
+
23
+ 解释
24
+ 翻转前 1 -> 2 -> 3 -> 4 -> 5 -> NULL
25
+ 反转后 5 -> 4 -> 3 -> 2 -> 1 -> NULL
19
26
```
20
27
21
28
## 解题思路
22
29
23
- ### 思路 1. 迭代
30
+ ### 思路 1: 迭代
24
31
25
32
1 . 使用两个指针 ` cur ` 和 ` pre ` 进行迭代。` pre ` 指向 ` cur ` 前一个节点位置。初始时,` pre ` 指向 ` None ` ,` cur ` 指向 ` head ` 。
26
33
36
43
37
44
![ ] ( https://qcdn.itcharge.cn/images/20220111133639.png )
38
45
39
- ### 思路 2. 递归
46
+ ### 思路 1:迭代代码
47
+
48
+ ``` Python
49
+ class Solution :
50
+ def reverseList (self , head : ListNode) -> ListNode:
51
+ pre = None
52
+ cur = head
53
+ while cur != None :
54
+ next = cur.next
55
+ cur.next = pre
56
+ pre = cur
57
+ cur = next
58
+ return pre
59
+ ```
60
+
61
+ ### 思路 2:递归
40
62
41
63
具体做法如下:
42
64
52
74
53
75
![ ] ( https://qcdn.itcharge.cn/images/20220111134246.png )
54
76
55
- ## 代码
56
-
57
- 1 . 迭代
58
-
59
- ``` Python
60
- class Solution :
61
- def reverseList (self , head : ListNode) -> ListNode:
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
70
- ```
71
-
72
- 2 . 递归
77
+ ### 思路 2:递归代码
73
78
74
79
``` Python
75
80
class Solution :
You can’t perform that action at this time.
0 commit comments