function solution(head) { if (head == null || head.next == null) { return true; } let prev; let slow = head; let fast = head; let i = 0; while (fast != null && fast.next != null) { fast = fast.next.next; let next = slow.next; slow.next = prev; prev = slow; slow = next; i++; } console.log(i); if (fast != null) { slow = slow.next; } console.log(slow); console.log(prev); while (slow != null) { if (slow.data != prev.data) { return false; } slow = slow.next; prev = prev.next; } return true; }
这是采用链表检测回文串
第一个红框逻辑便是将slow遍历到整个链表2/1位置
但是第二个红框进行比较不是很懂,prev逻辑有点懵逼 老师能够详细讲讲吗
详细讲讲算法流程