博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 141. Linked List Cycle环形链表 (C++)
阅读量:6881 次
发布时间:2019-06-27

本文共 1786 字,大约阅读时间需要 5 分钟。

题目:

Given a linked list, determine if it has a cycle in it.

To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to. If pos is -1, then there is no cycle in the linked list.

 

Example 1:

Input: head = [3,2,0,-4], pos = 1Output: trueExplanation: There is a cycle in the linked list, where tail connects to the second node.

Example 2:

Input: head = [1,2], pos = 0Output: trueExplanation: There is a cycle in the linked list, where tail connects to the first node.

Example 3:

Input: head = [1], pos = -1Output: falseExplanation: There is no cycle in the linked list.

分析:

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

遍历链表将节点存在map中,每次添加时,都判断下,是否已经存在。

还可以用快慢指针,慢指针一次走一个,快指针一次走两个,如果链表存在环的话,快慢指针终会相等。

程序:

/** * 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) {        map
m; while(head){ if(m[head] == 1) return true; m[head] = 1; head = head->next; } return false; }};
/** * 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* fast = head;        ListNode* slow = head;        while(fast && slow){            fast = fast->next;            slow = slow->next;            if(fast){                fast = fast->next;            }            else                break;            if(fast == slow)                return true;        }        return false;    }};

转载于:https://www.cnblogs.com/silentteller/p/10753899.html

你可能感兴趣的文章
HDU 5773 The All-purpose Zero
查看>>
使用百分比固定的table大小中td内容自动换行问题
查看>>
【Daily Scrum】12-08
查看>>
【实用】如何将sublime text 3 打造成实用的python IDE 环境
查看>>
DECLARE_DYNCREATE等宏
查看>>
Linux监控工具 (Linux Monitor Tools)
查看>>
[Unity3D]降低向Shader中传值的开销
查看>>
第二周CorelDRAW课总结
查看>>
css3颜色
查看>>
Java内存分析工具jmap
查看>>
this指向(匿名函数问题)
查看>>
Oracle序列化实现主键自增长
查看>>
VC中的字符串转换宏
查看>>
SVN过滤设置 ...
查看>>
POJ 3185 DFS
查看>>
Nginx服务配置编写
查看>>
H5-BLOB
查看>>
有趣的故事
查看>>
Hadoop安全模式
查看>>
HDFS详细分析一
查看>>