首页 > 学院 > 开发设计 > 正文

141.142. Linked List Cycle

2019-11-08 03:20:45
字体:
来源:转载
供稿:网友

141

/** * 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) { if(head == NULL) return false; ListNode *a = head; ListNode *b = head; while(b -> next != NULL && b -> next -> next != NULL){ a = a -> next; b = b -> next -> next; if(a == b) return true; } return false; }};

142

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *detectCycle(ListNode *head) { if(head == NULL) return NULL; ListNode *a = head; ListNode *b = head; while(b -> next != NULL && b -> next -> next != NULL){ a = a -> next; b = b -> next -> next; if(a == b){ a = head; while(a != b){ a = a -> next; b = b -> next; } return a; } } return NULL; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表