题解 | #链表中环的入口节点#

链表中环的入口节点

http://www.nowcoder.com/practice/6e630519bf86480296d0f1c868d425ad

题意:
        对于一个给定的链表,返回环的入口节点,如果没有环,返回null。

方法:
集合

思路:
        初始化一个集合;
        遍历链表的节点,并向集合中插入该节点。
        如果发现集合中已经存在该节点,则说明是环的入口节点。(因为说明是绕了一个环,第二次访问该节点)
      



class Solution {
public:
    ListNode *detectCycle(ListNode *head) {
        unordered_set<ListNode*> st;//集合
        ListNode *p=head;//初始化
        while(p){
            if(st.count(p)){//如果集合中存在该节点,则说明是环的入口节点
                return p;
            }else{//否则,插入节点
                st.insert(p);
            }
            p=p->next;
        }
        return nullptr;//不存在环
    }
};

时间复杂度:
空间复杂度:


全部评论

相关推荐

醉蟀:你不干有的是人干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务