while (life<end) {love++;}
原题如下:
给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
审题?
这次就不审题了,因为题目描述得已经很清晰。链表情况题目也限制了是非空的单链表。
解题思路:
利用快慢指针,快指针每次移动的结点数是慢指针的两倍,即快指针每次走两个结点,慢指针每次走一个结点。那么当快指针指向最后一个结点时,慢指针所指的位置就是单链表中间结点的位置。大家都能理解,就不分析了,直接上代码。
代码实现: