1- # 题目地址(61. 旋转链表)
1+ ## 题目地址(61. 旋转链表)
22
33https://leetcode-cn.com/problems/rotate-list/
44
@@ -26,38 +26,45 @@ https://leetcode-cn.com/problems/rotate-list/
2626```
2727
2828## 快慢指针法
29- #### 前置知识-求单链表的倒数第N个节点
29+ ### 前置知识
30+ - 求单链表的倒数第N个节点
3031
31- ** 思路 **
32+ ### 思路一
32331 . 采用快慢指
33342 . 快指针与慢指针都以每步一个节点的速度向后遍历
34353 . 快指针比慢指针先走N步
35364 . 当快指针到达终点时,慢指针正好是倒数第N个节点
3637
37- ** 伪代码**
38+ ### 思路一代码
39+
40+ - 伪代码
41+
3842``` js
39- 快指针 = head
40- 慢指针 = head
41- while (快指针.next ){
42- if (N -- <= 0 ){
43- 慢指针 = 慢指针.next
44- }
45- 快指针 = 快指针.next
46- }
43+ 快指针 = head
44+ 慢指针 = head
45+ while (快指针.next ){
46+ if (N -- <= 0 ){
47+ 慢指针 = 慢指针.next
48+ }
49+ 快指针 = 快指针.next
50+ }
4751```
4852
49- js Code:
53+ - 语言支持: JS
54+
55+ JS Code:
56+
5057``` js
51- let slow = fast = head
52- while (fast .next ){
53- if (k-- <= 0 ){
54- slow = slow .next
55- }
56- fast = fast .next
57- }
58+ let slow = fast = head
59+ while (fast .next ){
60+ if (k-- <= 0 ){
61+ slow = slow .next
62+ }
63+ fast = fast .next
64+ }
5865```
5966
60- ** 思路 **
67+ ### 思路二
61681 . 获取单链表的倒数第N + 1 与倒数第N个节点
62692 . 将倒数第N + 1个节点的next指向null
63703 . 将链表尾节点的next指向head
@@ -74,8 +81,9 @@ js Code:
7481 就像是长度为1000米的环形跑道,
7582 你跑1100米与跑100米到达的是同一个地点
7683
84+ ### 思路二代码
7785
78- 伪代码:
86+ - 伪代码
7987
8088``` js
8189 获取链表的长度
@@ -86,7 +94,10 @@ js Code:
8694 return 倒数第k个节点
8795```
8896
89- js Code:
97+ - 语言支持: JS, JAVA, Python, Go, PHP
98+
99+ JS Code:
100+
90101``` js
91102var rotateRight = function (head , k ) {
92103 if (! head || ! head .next ) return head
@@ -110,7 +121,8 @@ var rotateRight = function(head, k) {
110121};
111122```
112123
113- java Code:
124+ JAVA Code:
125+
114126``` java
115127class Solution {
116128 public ListNode rotateRight (ListNode head , int k ) {
@@ -137,7 +149,8 @@ class Solution {
137149}
138150```
139151
140- py3 Code:
152+ Python Code:
153+
141154``` py
142155class Solution :
143156 def rotateRight (self , head : ListNode, k : int ) -> ListNode:
@@ -171,6 +184,7 @@ class Solution:
171184```
172185
173186Go Code:
187+
174188``` go
175189/* *
176190 * Definition for singly-linked list.
@@ -211,6 +225,7 @@ func rotateRight(head *ListNode, k int) *ListNode {
211225```
212226
213227PHP Code:
228+
214229``` php
215230/**
216231 * Definition for a singly-linked list.
@@ -254,7 +269,7 @@ class Solution
254269}
255270```
256271
257- ** 复杂度分析**
272+ ## 复杂度分析
258273
259274- 时间复杂度:节点最多只遍历两遍,时间复杂度为$O(N)$
260275- 空间复杂度:未使用额外的空间,空间复杂度$O(1)$
0 commit comments