1. 程式人生 > >白菜刷LeetCode記-328. Odd Even Linked List

白菜刷LeetCode記-328. Odd Even Linked List

null 位置 leetcode 全部 png bsp col fun 解決

發現簡單題越來越少了,想偷懶都不可以了,今天的題目是中等難度的題目,題目如下:

技術分享圖片

這個題目是要根據鏈表的位置來修改鏈表,位置為奇數的節點全部排到前面,位置為偶數的節點全部排到奇數的後面,並且保持順序不變。

想到的解決步驟為:

1、遍歷數組,奇數的位置的節點組成一條新鏈表,偶數位置的節點組成另一個新鏈表;

2、將偶數鏈表接在奇數鏈表後面。

代碼如下:

 1 /**
 2  * Definition for singly-linked list.
 3  * function ListNode(val) {
 4  *     this.val = val;
 5  *     this.next = null;
6 * } 7 */ 8 /** 9 * @param {ListNode} head 10 * @return {ListNode} 11 */ 12 var oddEvenList = function(head) { 13 let idx = head; 14 let head1 = new ListNode(0); 15 let head2 = new ListNode(0); 16 let tail1 = head1; 17 let tail2 = head2; 18 19 let count = 0; 20 while
(idx){ 21 if(count%2 == 0){ 22 tail1.next = idx; 23 idx = idx.next; 24 tail1 = tail1.next; 25 tail1.next = null; 26 }else{ 27 tail2.next = idx; 28 idx = idx.next; 29 tail2 = tail2.next; 30 tail2.next = null
; 31 } 32 count++; 33 } 34 35 head = head1.next; 36 tail1.next = head2.next; 37 38 return head; 39 };

END

白菜刷LeetCode記-328. Odd Even Linked List