functioncreate_linkList(n) { const head = new Node(1); let pre = head; for(let i = 2; i <= n; i++) { const node = new Node(i); pre.next = node; pre = node; } pre.next = head; return head; }
functionmain() { const all = 3; const num = 1;
const list = create_linkList(all); let pre = null; let cur = list;
while(cur.next !== cur) { for(let i = 0; i < num; i++) { pre = cur; cur = cur.next; } pre.next = cur.next; }
console.log(cur.val); } main();
链表反转
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
functionreverseList(head) { // head 为哨兵节点,不需要反转 let currentNode = head.next; let previousNode = null
while(currentNode) { let nextNode = currentNode.next;
currentNode.next = previousNode;
previousNode = currentNode;
currentNode = nextNode; }
head.next = previousNode; }
检测链表中的环
1 2 3 4 5 6 7 8 9 10 11
functioncheckCircle(head) { let fast = head.next; let slow = head;