Skip to content

Commit 5e6ace2

Browse files
committed
feat: add odd even linked list
1 parent 6cfc561 commit 5e6ace2

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

js/odd_even_linked_list.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
* @Author: Chacha
3+
* @Date: 2022-05-10 21:46:56
4+
* @Last Modified by: Chacha
5+
* @Last Modified time: 2022-05-10 21:49:27
6+
*/
7+
/**
8+
* 奇偶链表
9+
*
10+
*/
11+
class ListNode {
12+
constructor(val, next) {
13+
this.val = val === undefined ? 0 : val;
14+
this.next = next === undefined ? null : next;
15+
}
16+
}
17+
18+
const oddEvenList = function (head) {
19+
if (head === null) {
20+
return null;
21+
}
22+
23+
if (head.next === null) {
24+
return head;
25+
}
26+
27+
let odd = head,
28+
even = head.next,
29+
evenHead = head.next;
30+
31+
// console.log(evenHead);
32+
33+
while (even !== null && even.next !== null) {
34+
odd.next = odd.next.next;
35+
odd = odd.next;
36+
even.next = even.next.next;
37+
even = even.next;
38+
}
39+
40+
odd.next = evenHead;
41+
42+
// console.log(evenHead, head.next);
43+
44+
return head;
45+
};
46+
47+
let node5 = new ListNode(5);
48+
let node4 = new ListNode(4, node5);
49+
let node3 = new ListNode(3, node4);
50+
let node2 = new ListNode(2, node3);
51+
let node1 = new ListNode(1, node2);
52+
53+
console.log(oddEvenList(node1));

0 commit comments

Comments
 (0)