File tree Expand file tree Collapse file tree 1 file changed +80
-3
lines changed Expand file tree Collapse file tree 1 file changed +80
-3
lines changed Original file line number Diff line number Diff line change @@ -38,7 +38,7 @@ public:
38
38
cur = head;
39
39
int i = 1;
40
40
int j = vec.size() - 1; // i j为之前前后的双指针
41
- int count = 0; // 计数,偶数去后面 ,奇数取前面
41
+ int count = 0; // 计数,偶数取后面 ,奇数取前面
42
42
while (i <= j) {
43
43
if (count % 2 == 0) {
44
44
cur->next = vec[ j] ;
@@ -73,7 +73,7 @@ public:
73
73
}
74
74
75
75
cur = head;
76
- int count = 0; // 计数,偶数去后面 ,奇数取前面
76
+ int count = 0; // 计数,偶数取后面 ,奇数取前面
77
77
ListNode* node;
78
78
while(que.size()) {
79
79
if (count % 2 == 0) {
@@ -338,8 +338,85 @@ class Solution:
338
338
return pre
339
339
```
340
340
### Go
341
+
342
+ ``` go
343
+ // 方法一 数组模拟
344
+ /* *
345
+ * Definition for singly-linked list.
346
+ * type ListNode struct {
347
+ * Val int
348
+ * Next *ListNode
349
+ * }
350
+ */
351
+ func reorderList (head *ListNode ) {
352
+ vec := make ([]*ListNode, 0 )
353
+ cur := head
354
+ if cur == nil {
355
+ return
356
+ }
357
+ for cur != nil {
358
+ vec = append (vec, cur)
359
+ cur = cur.Next
360
+ }
361
+ cur = head
362
+ i := 1
363
+ j := len (vec) - 1 // i j为前后的双指针
364
+ count := 0 // 计数,偶数取后面,奇数取前面
365
+ for i <= j {
366
+ if count % 2 == 0 {
367
+ cur.Next = vec[j]
368
+ j--
369
+ } else {
370
+ cur.Next = vec[i]
371
+ i++
372
+ }
373
+ cur = cur.Next
374
+ count++
375
+ }
376
+ cur.Next = nil // 注意结尾
377
+ }
378
+ ```
379
+
380
+ ``` go
381
+ // 方法二 双向队列模拟
382
+ /* *
383
+ * Definition for singly-linked list.
384
+ * type ListNode struct {
385
+ * Val int
386
+ * Next *ListNode
387
+ * }
388
+ */
389
+ func reorderList (head *ListNode ) {
390
+ que := make ([]*ListNode, 0 )
391
+ cur := head
392
+ if cur == nil {
393
+ return
394
+ }
395
+
396
+ for cur.Next != nil {
397
+ que = append (que, cur.Next )
398
+ cur = cur.Next
399
+ }
400
+
401
+ cur = head
402
+ count := 0 // 计数,偶数取后面,奇数取前面
403
+ for len (que) > 0 {
404
+ if count % 2 == 0 {
405
+ cur.Next = que[len (que)-1 ]
406
+ que = que[:len (que)-1 ]
407
+ } else {
408
+ cur.Next = que[0 ]
409
+ que = que[1 :]
410
+ }
411
+ count++
412
+ cur = cur.Next
413
+ }
414
+ cur.Next = nil // 注意结尾
415
+ }
416
+ ```
417
+
341
418
``` go
342
- # 方法三 分割链表
419
+ // 方法三 分割链表
343
420
func reorderList (head *ListNode ) {
344
421
var slow =head
345
422
var fast =head
You can’t perform that action at this time.
0 commit comments