机器学习知识点一
链表中环的入口结点
http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
注意
- 找到meet就跳出
- !的位置
- 双指针fast有可能在两个环节跳出
- 最后还需判断meet是否为空(==)
- 最后循环找到那个交点即可
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { ListNode* slow = pHead; ListNode* fast = pHead; ListNode* meet = NULL; if(!pHead){ return NULL; } while(fast){ slow = slow->next; fast = fast->next; if(!fast){ return NULL; } fast = fast->next; if(fast == slow){ meet = fast; break; } } if(meet==NULL){ return NULL; } while(pHead&&meet){ if(pHead==meet){ return meet; } pHead= pHead->next; meet = meet->next; } return NULL; } };
算法解析 文章被收录于专栏
这里主要是算法岗的自我思路总结