不花费额外的空间
方法很简单,遍历一遍即可,在遍历过的节点,都改变它的一个状态。如果形成环,会再次指向遍历过的节点,这个时候判断它的状态是否改变。
这个方法是可以被测试数据攻击掉的,不是完美解决方案。
```
class Solution { public: bool hasCycle(ListNode *head) { ListNode* start = new ListNode(-1); ListNode* iter = head; while(iter!=NULL) { if(iter->next==start) return true; ListNode* temp = iter; iter = iter->next; (*temp).next = start; } return false; } };
```