面试题一:判断链表是否带环
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、做网站、榆社网络推广、小程序制作、榆社网络营销、榆社企业策划、榆社品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供榆社建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
int FndLoop(pLinkList list) { pLinkNode fast=list->pHead; pLinkNode slow=list->pHead; assert(list); while(fast!=NULL && fast->next!=NULL) { slow=slow->next; fast=fast->next->next; if( fast!=NULL && slow==fast) { return 1;//有环 } } return 0;//无环 }
面试题二:找到环的入口点
pLinkNode FndLoopNode(pLinkList list) { pLinkNode fast=list->pHead; pLinkNode slow=list->pHead; assert(list); while(fast!=NULL && fast->next!=NULL) { slow=slow->next; fast=fast->next->next; if( fast!=NULL && slow==fast) { break; } } slow=list->pHead; while(slow!=fast) { slow=slow->next; fast=fast->next; } return slow; }