当前位置:网站首页>Lecture 1: the entry node of the link in the linked list
Lecture 1: the entry node of the link in the linked list
2022-07-08 00:28:00 【Fight! Sao Nian!】
subject : The entry node of a link in a list
Given a linked list , If it contains rings , Then the inlet node of the output ring .
If it does not contain a ring , The output null.
Data range
node val Value range [1,1000].
Chain length [0,500].
Examples
Given the linked list shown above :
[1, 2, 3, 4, 5, 6]
2
Be careful , there 2 Indicates that the number is 2 The node of , Node number from 0 Start . So the number is 2 The node of is val be equal to 3 The node of .
Then the inlet node of the output ring 3.
title :
Method 1 : Hashtable
We can use unordered_set, To save the node pointer , If the same pointer is found (set The size of the remains the same ), It means the entry node
Method 2 : Speed pointer
principle : Two steps at a time , Slow pointer one step at a time , If there is a ring, it must meet
Pictured , Suppose the slow pointer starts from a Go to the b Finally, I met the fast pointer in c, If the slow pointer returns to b spot , Then the fast pointer will return to d spot ( Because I will walk more y Step )
Then we can find that when the slow pointer goes b spot , Then the pointer will go to d spot ( Because of the fallback ), that x+y It will be an integral multiple of the circle ( In fact, the fast pointer may have gone through many circles , But it doesn't affect , It is equivalent to the remainder operation )
Finally, we move the slow pointer to the starting point , The two pointers take the same number of steps , Will meet at the entrance ( Because the fast pointer has gone y Step , To walk again x Step will definitely be b spot , And slow the pointer x Step will also be in b spot )
Number of executions :x+y+2x+2y+2x=5x+3y( because x+y Less than the total length , So time complexity 0(n))
/** * 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) {
if(!head)return NULL;
set<ListNode *> s;
while(head->next)
{
int size=s.size();
s.insert(head);
if(size==s.size())return head;
head=head->next;
}
return NULL;
}
};
边栏推荐
- Robomaster visual tutorial (0) Introduction
- [the most detailed in history] statistical description of overdue days in credit
- Emotional post station 010: things that contemporary college students should understand
- When creating body middleware, express Is there any difference between setting extended to true and false in urlencoded?
- 去了字节跳动,才知道年薪 40w 的测试工程师有这么多?
- Reading notes 004: Wang Yangming's quotations
- A brief history of information by James Gleick
- Which securities company has a low, safe and reliable account opening commission
- 单机高并发模型设计
- 5g NR system messages
猜你喜欢
Trust orbtk development issues 2022
80% of the people answered incorrectly. Does the leaf on the apple logo face left or right?
new和delete的底层原理以及模板
Huawei switch s5735s-l24t4s-qa2 cannot be remotely accessed by telnet
某马旅游网站开发(对servlet的优化)
【笔记】常见组合滤波电路
[question de programmation] [scratch niveau 2] oiseaux volants en décembre 2019
Is Zhou Hongyi, 52, still young?
华为交换机S5735S-L24T4S-QA2无法telnet远程访问
51与蓝牙模块通讯,51驱动蓝牙APP点灯
随机推荐
An error is reported during the process of setting up ADG. Rman-03009 ora-03113
备库一直有延迟,查看mrp为wait_for_log,重启mrp后为apply_log但过一会又wait_for_log
Development of a horse tourism website (optimization of servlet)
Reentrantlock fair lock source code Chapter 0
【obs】官方是配置USE_GPU_PRIORITY 效果为TRUE的
Anaconda+pycharm+pyqt5 configuration problem: pyuic5 cannot be found exe
服务器防御DDOS的方法,杭州高防IP段103.219.39.x
华泰证券官方网站开户安全吗?
How to insert highlighted code blocks in WPS and word
[programming problem] [scratch Level 2] March 2019 draw a square spiral
【obs】Impossible to find entrance point CreateDirect3D11DeviceFromDXGIDevice
C language 005: common examples
Handwriting a simulated reentrantlock
How does starfish OS enable the value of SFO in the fourth phase of SFO destruction?
How to measure whether the product is "just needed, high frequency, pain points"
LeetCode刷题
80% of the people answered incorrectly. Does the leaf on the apple logo face left or right?
[C language] objective questions - knowledge points
某马旅游网站开发(对servlet的优化)
22年秋招心得