Skip to content

链表 - 快慢指针

来源:基础算法精讲 by 灵茶山艾府

视频精讲:链表 - 快慢指针

题目代码备注
876. 链表的中间结点代码
141. 环形链表代码
142. 环形链表 II代码
143. 重排链表代码
234. 回文链表代码*课后作业

例题

876.链表中间节点

  • 快慢指针,找中间值,脑海里模拟一下就行
js
var middleNode = function(head) {
    let fast = head,slow = head;
    while(fast !== null && fast.next !== null){

        fast = fast.next.next;
        slow = slow.next
    }
    return slow;
};

141.环形链表

js
var hasCycle = function (head) {
    //快慢指针,模拟发现,必然会在环内相遇,判断相遇就行
    let fast = head, slow = head;

    while (fast && fast.next) {
        fast = fast.next.next;
        slow = slow.next;
        if(fast === slow) return true
    }
    return false;
};

142.环形链表二

  • 在上一题的基础上,要找入口
  • 脑海里模拟

143.重排链表

作业