??????????Hello大家好!很高興我們又見面啦!給生活添點passion,開始今天的編程之路!
我的博客:<但凡.
我的專欄:《編程之路》、《數據結構與算法之美》、《題海拾貝》
歡迎點贊,關注!
?1、題目
?2、題解(快慢指針)
????????我們可以定義兩個指針,剛開始時都指向這個鏈表的頭節點,然后讓快指針每次走兩個節點,慢指針每次走一個節點。如果有環狀鏈表存在,那快慢指針一定會相遇。倘若沒有,快指針一定會先走到頭,快指針下一個節點是空或者他自己是空時,返回假。
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
bool hasCycle(struct ListNode *head) {struct ListNode* fast=head;struct ListNode* slow=head;if(head==NULL||head->next==NULL) return false;while( fast!=NULL && slow!=NULL && fast->next!=NULL){fast=fast->next->next;slow=slow->next;if( fast==slow ) return true;}return false;}
????????好了,今天的內容就分享到這,我們下期再!
?