【LeetCode】之Linked List Cycle
2015-08-31 20:32
211 查看
Given a linked list, determine if it has a cycle in it.
此题目的在于判断一个链表是否是一个循环链表。
思路:
1.先定义两个节点指针first和second;
2.first每次走一步,second每次走两步;
3.若second && second->next为NULL,则返回false,此判断是因为如果second为NULL,则
second->next就会抛出异常,同样要判断second->next是否为NULL,不然second->next->next也会抛出异常;
4.否则,如果first == second ,则返回true。
此题目的在于判断一个链表是否是一个循环链表。
思路:
1.先定义两个节点指针first和second;
2.first每次走一步,second每次走两步;
3.若second && second->next为NULL,则返回false,此判断是因为如果second为NULL,则
second->next就会抛出异常,同样要判断second->next是否为NULL,不然second->next->next也会抛出异常;
4.否则,如果first == second ,则返回true。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: bool hasCycle(ListNode *head) { ListNode *first = head; ListNode *second = head; while(second && second->next){ first = first->next; second = second->next->next; if(first == second) return true; } return false; } };
相关文章推荐
- [C/C++]反转链表
- C#实现基于链表的内存记事本实例
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++实现简单的学生管理系统
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法
- C#实现的简单链表类实例
- 找出链表倒数第n个节点元素的二个方法
- Java数据结构之简单链表的定义与实现方法示例
- C语言单循环链表的表示与实现实例详解
- C++实现的链表类实例
- PHP小教程之实现链表
- C语言双向链表的表示与实现实例详解
- C语言实现输出链表中倒数第k个节点
- C++语言实现线性表之链表实例
- STL list链表的用法详细解析
- C语言创建链表错误之通过指针参数申请动态内存实例分析
- php链表用法实例分析
- JavaScript中数据结构与算法(三):链表