首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

查寻单链表中间节点

2013-03-14 
查找单链表中间节点题目的解法当然不可能是一次遍历得到链表长度,然后再遍历一半,那是最最没办法的办法。在

查找单链表中间节点
题目的解法当然不可能是一次遍历得到链表长度,然后再遍历一半,那是最最没办法的办法。在链表中很多题目的解法都跟大小指针有关。比如这道题目,设立两个指针,一个单步走,一个两步走,当大步指针到达链表尾部的时候,小步指针也正好位于链表中间位置。算法实现如下:

Node * findMiddleNodeOfLinedList(Node *head){    //判断空链表、单节点链表    if(null == head || null == head->next)    {        return head;    }    Node *p1 = *p2 = head;    while(null != p2->next && null != p2->next->next )    {        p2 = p2->next->next;        p1 = p1->next;    }    return p1;}


热点排行