LeetCode环形链表

已知一个链表的头结点head,判断链表中是否有环

思路快慢指针定义两个指针,一个指针每次只移动一步,另一个指针每次移动两步,如果是环形链表,两个指针肯定会相遇,那么该链表就是环形链表;如果快速指针从头结点一直到fast==NULL或者fast->next==NULL都没有跟慢指针相遇,那么它就不是环形链表

#ifndef _HASCYCLE_H_#define _HASCYCLE_H_#define true 1#define false 0#include #include typedef int bool;struct ListNode { int val; struct ListNode* next;};bool hasCycle(struct ListNode* head);#endif//方法实现bool hasCycle(struct ListNode* head) { if(head == NULL || head->next == NULL) return false; struct ListNode* fast = head; struct ListNode* slow = head; do { if (fast == NULL || fast->next == NULL) return false; fast = fast->next->next; slow = slow->next; } while (fast != slow); return true;}

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
上一篇 2022年6月30日 20:05
下一篇 2022年6月30日 20:05

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息