给定一个链表,若其中包含环,则输出环的入口节点。

若其中不包含环,则输出null。

样例

给定如上所示的链表:
[1, 2, 3, 4, 5, 6]
2
注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。

则输出环的入口节点3.

/
* Definition for singly-linked list.
* struct ListNode
{
    *int val;
    *ListNode next;
    *ListNode(int x) : val(x), next(NULL){}
                                   *
};
/
    class Solution
{
public:
    ListNode entryNodeOfLoop(ListNode head)
    {
        ListNode *now = head;
        while (now != NULL)
        {
            if (now->val < 0)
            {
                now->val = -now->val; //非明令禁止者,皆无不可能
                return now;
            }
            else
            {
                now->val = -now->val;
                now = now->next;
            }
        }

        return NULL;
    }
};
Last modification:February 7th, 2021 at 02:09 pm