题解 | #链表的奇偶重排#
链表的奇偶重排
http://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3
数组的解法,循环两次
* function ListNode(x){
* this.val = x;
* this.next = null;
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
function oddEvenList( head ) {
// write code here
// 第一直觉用数组
// 第二直觉用两个链表
if(!head) return null;
let arr = [];
let p = head;
while(p){
arr.push(p.val);
p = p.next;
}
console.log(arr);
p = head;
for(let i = 0;i<arr.length;i++){
if((i+1) % 2 == 1){
p.val = arr[i];
p = p.next;
}
}
for(let i = 0;i<arr.length;i++){
if((i+1) % 2 == 0){
p.val = arr[i];
p = p.next;
}
}
// 因为最后一个一定是null,不需要这步|p.next = null;
console.log(head);
return head;
}
module.exports = {
oddEvenList : oddEvenList
};