面试题一:判断链表是否带环
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; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。