遍历链表一遍取出中间的节点

来源:互联网 发布:马克思主义历史观知乎 编辑:程序博客网 时间:2024/05/08 21:46

步骤,设立两个指针,同事指向头结点,一个指针一次跳一个节点,一个指针一次跳两个节点。当跳两个节点的指针到表尾时,跳一个节点的指针刚好到终点

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;}


 

原创粉丝点击