环形链表

 
bool hasCycle(ListNode *head) {
    if (head == nullptr || head->next == nullptr) {
        return false;
    }
    // 快慢指针: 初始为相同节点
    ListNode *slow = head;
    ListNode *fast = head;
    // 判断快指针是否为空即可
    while (fast != nullptr && fast->next != nullptr) {
	      // 先移动快慢指针
        slow = slow->next;
        fast = fast->next->next;
        // 再判断是否相等
        if (slow == fast) {
            return true;
        }
    }
    return false;
}
 
你觉得这篇文章怎么样?
YYDS
比心
加油
菜狗
views

Loading Comments...