快速找到单链表的中间节点

来源:互联网 发布:校验md5码软件 编辑:程序博客网 时间:2024/04/29 19:10

思路:可以先遍历链表求出链表的总长度,然后找到中间节点的位置。比较快的方法是设置两个指针都指向头节点,第一个指针每次移动一步,第二个指针每次移动两步,那么第二个指针到末尾的时候第一个指针就在中间位置了。

示例:

int GetMidNode(list l){position p, mid;p = mid = l;while (p->next != NULL){if (p->next->next != NULL){p = p->next->next;mid = mid->next;}else{p = p->next;}}return mid->data;}

0 0
原创粉丝点击