joe85231 发表于 2017-6-1 13:32:56

[算法练习]找到单向链表的中间节点

一个指针跑2步 一个指针跑一步 当跑2步的指针跑到终点后 另一个指针就跑到中间
typedef struct _NODE
{
        int data;
        struct _NODE *next;
}NODE,*PNODE;


PNODE FindCenterLink(PNODE head)
{
    PNODE pMid = head;   
    PNODE pRun = pMid;

        if( head == NULL )
                return NULL;

    while( pRun )   
    {   
      pRun = pRun->next;   
      if( pRun != NULL )   
      {   
            pRun = pRun->next;   
            pMid = pMid->next;   
      }   
    }   

    return pMid;
}
页: [1]
查看完整版本: [算法练习]找到单向链表的中间节点