【数据结构算法】线性表(四):单链表小结(面试题)

题目:快速找到未知长度单链表的中间节点

利用快慢指针原理:设置两个指针*search、 *mid都指向单链表的头节点。其中 *search的移动速度是 *mid的两倍。当 *search指向末尾节点的时候 *mid正好就在中间。这也是标尺的思想。

GetMidNode(LinkList L, ElemType *e)
{
    LinkList search, mid;
    mid = search = L;

    while(search->next != NULL)
    {
        if(search->next->next != NULL)
        {
            search = search->next->next;
            mid = mid->next;
        }
        else
        {
            search = search->next;
        }
    }

    *e = mid->data;

    return OK;
}
    原文作者:yuanCruise
    原文地址: https://blog.csdn.net/qiu931110/article/details/80574984
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞