步骤,设立两个指针,同事指向头结点,一个指针一次跳一个节点,一个指针一次跳两个节点。当跳两个节点的指针到表尾时,跳一个节点的指针刚好到终点
int middle() const {
if(!m_head || !m_tail)
return 0;
if(m_head == m_tail)
return m_head->m_data;
Node *mid = m_head;
for (Node *node = m_head; node->m_next&&node->m_next->m_next; node = node->m_next->m_next) {
mid = mid->m_next;
}
return mid->m_data;
}