zoukankan      html  css  js  c++  java
  • 腾讯//环形链表 II

    给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null

    说明:不允许修改给定的链表。

    进阶:
    你是否可以不用额外空间解决此题?

    /**
     * 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)
                return head;
            ListNode *slow = head;
            ListNode *fast = head->next;
            bool flag = true;
            while(flag&&fast&&fast->next&&fast->next->next){
                if(slow == fast)
                    flag = false;
                if(fast==nullptr){
                    flag = true;
                    break;
                }
                slow = slow->next;
                fast = fast->next->next;
            }
            if(flag){
                return nullptr;
            }
            fast = head;
            while(fast!=slow){
                fast = fast->next;
                slow = slow->next;
            }
            return slow;
        }
    };
  • 相关阅读:
    struct&Method
    SetFinalizer、runtime.GC
    Map(没有写底层)
    数组和切片
    函数
    指针、Time
    字符串、strings、strconv
    基本类型和运算符
    第二阶段的事后诸葛亮
    第二个冲刺阶段第10天
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602466.html
Copyright © 2011-2022 走看看