leetcode 141. Linked List Cycle

qq_33577374 2016-07-31 06:34:45
Given a linked list, determine if it has a cycle in it.

我的code:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
bool hasCycle(struct ListNode *head) {
struct ListNode *p;
if(head==NULL)
return false;
p=head;
while(p){
p=p->next;
if(p==head)
return true;
}
return false;
}


显示这个怎么解决?
...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33577374 2016-08-06
  • 打赏
  • 举报
回复
引用 6 楼 ID870177103 的回复:
[quote=引用 4 楼 qq_33577374 的回复:] [quote=引用 3 楼 ID870177103 的回复:] 你的循环访问的节点顺序为0123123123...死循环,解法2楼正解
if(p==head) 不是可以判断是否是相同的节点吗....[/quote] 3节点的下个节点是1,第一次访问0后再也不会访问到0的[/quote] 我用快慢指针写,代码如下 bool hasCycle(struct ListNode *head) { struct ListNode *fast,*slow; if(head==NULL) return false; fast=head->next; slow=head; while(fast!=NULL&&fast->next!=NULL){ //需不需要fast->next!=NULL??? if(fast==slow) return true; fast=fast->next->next; slow=slow->next; } return false; } 我的问题是为什么while的条件,去掉fast->next!=NULL就不正确了?难道fast->null->next可能会指向链表里的节点?就是说,null的next不一定是null,有可能指向链表里的节点??
ID870177103 2016-08-02
  • 打赏
  • 举报
回复
引用 4 楼 qq_33577374 的回复:
[quote=引用 3 楼 ID870177103 的回复:] 你的循环访问的节点顺序为0123123123...死循环,解法2楼正解
if(p==head) 不是可以判断是否是相同的节点吗....[/quote] 3节点的下个节点是1,第一次访问0后再也不会访问到0的
多啦A没有梦 2016-08-02
  • 打赏
  • 举报
回复
你是想遍历循环链表吗?指针用错了吧, typedef struct ListNode { int val; struct ListNode *next; }ListNode_t; 然后定义ListNode_t *p;
qq_33577374 2016-08-02
  • 打赏
  • 举报
回复
引用 3 楼 ID870177103 的回复:
你的循环访问的节点顺序为0123123123...死循环,解法2楼正解
if(p==head) 不是可以判断是否是相同的节点吗....
qq_33577374 2016-08-02
  • 打赏
  • 举报
回复
引用 6 楼 ID870177103 的回复:
[quote=引用 4 楼 qq_33577374 的回复:] [quote=引用 3 楼 ID870177103 的回复:] 你的循环访问的节点顺序为0123123123...死循环,解法2楼正解
if(p==head) 不是可以判断是否是相同的节点吗....[/quote] 3节点的下个节点是1,第一次访问0后再也不会访问到0的[/quote] 噢我明白了,这个cycle不是指循环链表,只要是个环的都算
ID870177103 2016-08-01
  • 打赏
  • 举报
回复
你的循环访问的节点顺序为0123123123...死循环,解法2楼正解
ri_aje 2016-08-01
  • 打赏
  • 举报
回复
这题标准解法是快慢指针。
ri_aje 2016-08-01
  • 打赏
  • 举报
回复
说的是你算法是错的。last executed input 那行给的是测试出错的那组参数。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧