LeetCode——876. 链表的中间结点

876. 链表的中间结点 - 力扣(LeetCode)

LeetCode——876. 链表的中间结点_第1张图片

找到中间的节点我们常规的思路就是,遍历一次数组统计元素的个数。个数除以2,然后得到中间节点。

我们得到中间节点的位置,还需要遍历一次数组。这个做法还是很简单的。

假如我们只能遍历一遍数组,我们怎么去·做才能得到中间元素的地址。

我们引入快慢指针的概念。我们知道中间是数组的一半的位置。假如块指针一次走两步,慢指针一次走一步,这样当块指针走到最后的时候,慢指针就走到中间了。

LeetCode——876. 链表的中间结点_第2张图片

因为当链表元素为偶数个时返回中间第二个节点。这时我们的快指针指向空。

当链表元素为奇数个的时候,我们的快指针的next指向空。

你可能感兴趣的:(c语言,c++)