【C++】leetcode142--使用map容器
·
该代码实现了一个检测链表环入口节点的算法。使用哈希表记录已访问的节点,遍历链表时检查当前节点是否已被记录。若遇到已记录的节点,则返回该节点(环的入口);若遍历结束未发现重复节点则返回NULL。时间复杂度O(n),空间复杂度O(n)。核心思路是通过哈希表实现节点访问状态的追踪。
class Solution {
public:
ListNode *detectCycle(ListNode *head) {
if(head == NULL) return NULL;
map<ListNode *,int> pp;
pp.insert(pair<ListNode *,int>(head,1));
ListNode * cur = head->next;
while(cur != NULL)
{
if(pp.find(cur) == pp.end())
{
pp.insert(pair<ListNode *,int>(cur,1));
cur = cur->next;
}
else
return cur;
}
return NULL;
}
};
更多推荐



所有评论(0)