发现简单题越来越少了,想偷懒都不可以了,今天的题目是中等难度的题目,题目如下:
这个题目是要根据链表的位置来修改链表,位置为奇数的节点全部排到前面,位置为偶数的节点全部排到奇数的后面,并且保持顺序不变。
想到的解决步骤为:
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
原文地址:https://www.cnblogs.com/sssysukww/p/9668270.html
时间: 2024-10-08 21:05:14