【力扣876】链表的中间节点
题目
给你单链表的头结点 head ,请你找出并返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
示例 1:

1 | 输入:head = [1,2,3,4,5] |
示例 2:

1 | 输入:head = [1,2,3,4,5,6] |
提示:
- 链表的结点数范围是
[1, 100] 1 <= Node.val <= 100
实现代码
使用快慢双指针方式,假设指针p1,p2,初始都指向头节点,同时往下走,p1每次走一步,p2每次走两步,那么当p2走到链表最后一个节点或空节点的时候,p1就在链表的中间,如图:

1 | /** |
时间复杂度
时间
O(n)
空间复杂度
空间
O(1)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 青柠!
评论


















































