白菜刷LeetCode記-328. Odd Even Linked List
阿新 • • 發佈:2018-09-18
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