如何检测单链表中的是否存在环
最好能有程序 俺是初学者
设一快一慢两个指针(Node *fast, *low)同时从链表起点开始遍历,其中快指针每次移动长度为2,慢指针则为1。则若无环,开始遍历之后fast不可能与low重合,且fast或fast->next最终必然到达NULL;若有环,则fast必然先进入环,且由于fast移动步长为2,low移动步长为1,则在low进入环后继续绕环遍历一周之前,fast必然能与low重合。
于是函数可写如下: // 若有环,encounter是fast与low重合的地方 bool hasCircle(Node* head, Node* &encounter) { Node *fast = head, *low = head; while(fast && fast->next) { fast = fast->next->next; low = low->next; if(fast == low) { encounter = fast; return true; } } encounter = NULL; return false; } 。
答:单结晶体管又叫双基极二极管,它的符号和外形见附图。 判断单结晶体管发射极E的方法是:把万用表置于R*100挡或R*1K挡,黑表笔接假设的发射极,红表笔接另外两极...详情>>