LeetCode 141. 环形链表(Linked List Cycle)

题目描述

给定一个链表,判断链表中是否有环。

进阶:
你能否不使用额外空间解决此题?

解题思路

快慢指针,慢指针一次走一步,快指针一次走两步,若两者相遇则说明有环,快指针无路可走则说明无环。

代码

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 class Solution {
10 public:
11     bool hasCycle(ListNode *head) {
12         ListNode *left = head, *right = head;
13         while(right && right->next && right->next->next){
14             left = left->next;
15             right = right->next->next;
16             if(left == right) return true;
17         }
18         return false;
19     }
20 };

猜你喜欢

转载自www.cnblogs.com/wmx24/p/9713950.html
今日推荐