Notes

环形链表详解

一句话结论:React 常用“环形单向链表”做队列:只维护尾指针就能 O(1) 追加;遍历时从 tail.next 作为头开始绕一圈即可。

1. 为什么适合做更新队列/Effect 队列

  • 追加快:只改 2~3 个指针
  • 合并方便:把两个环“拼接”即可(常用于 pending 与 baseQueue 合并)

2. 怎么读一个环形链表

  • tail 指向最后一个节点
  • head = tail.next 指向第一个节点
  • 从 head 开始遍历,直到回到 head

3. 在 React 里常见出现位置

  • queue.pending:State Hook 的待处理 update 队列
  • fiber.updateQueue.lastEffect:effect 队列(useEffect/useLayoutEffect)

关联阅读

cd ..