首页 > 代码库 > 链表(6)----查找链表中间节点
链表(6)----查找链表中间节点
1、链表定义
typedef struct ListElement_t_ { void *data; struct ListElement_t_ *next; } ListElement_t; typedef struct List_t_{ int size; int capacity; ListElement_t *head; ListElement_t *tail; } List_t;
2、查找链表中间节点,设置快慢指针,快指针一次走两步,慢指针一次走一步
void *SearchMidNode( List_t *list){ if ( list == NULL || list->head == NULL ) return NULL; ListElement_t *pFast = list->head; ListElement_t *pSlow = list->head; //若节点为N个, N为奇数,则返回第N/2 +1个节点, N为偶数,则返回第N/2个节点 while( pFast->next != NULL && pFast->next->next != NULL){ pFast = pFast->next->next; pSlow = pSlow->next; } return pSlow->data; }
链表(6)----查找链表中间节点
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。