当前位置:网站首页>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;
}
};
边栏推荐
- C# 泛型及性能比较
- Daily question brushing record (16)
- [programming problem] [scratch Level 2] 2019.09 make bat Challenge Game
- 韦东山第三期课程内容概要
- The method of server defense against DDoS, Hangzhou advanced anti DDoS IP section 103.219.39 x
- 韦东山第二期课程内容概要
- Cause analysis and solution of too laggy page of [test interview questions]
- 取消select的默认样式的向下箭头和设置select默认字样
- 华为交换机S5735S-L24T4S-QA2无法telnet远程访问
- How to insert highlighted code blocks in WPS and word
猜你喜欢

Daily question brushing record (16)

【笔记】常见组合滤波电路

Tencent security released the white paper on BOT Management | interpreting BOT attacks and exploring ways to protect

C language 001: download, install, create the first C project and execute the first C language program of CodeBlocks

从Starfish OS持续对SFO的通缩消耗,长远看SFO的价值

"An excellent programmer is worth five ordinary programmers", and the gap lies in these seven key points

paddle一个由三个卷积层组成的网络完成cifar10数据集的图像分类任务

Jouer sonar

Development of a horse tourism website (optimization of servlet)

去了字节跳动,才知道年薪 40w 的测试工程师有这么多?
随机推荐
韦东山第三期课程内容概要
接口测试进阶接口脚本使用—apipost(预/后执行脚本)
[programming problem] [scratch Level 2] draw ten squares in December 2019
Usage of limit and offset (Reprint)
How to measure whether the product is "just needed, high frequency, pain points"
2022-07-07:原本数组中都是大于0、小于等于k的数字,是一个单调不减的数组, 其中可能有相等的数字,总体趋势是递增的。 但是其中有些位置的数被替换成了0,我们需要求出所有的把0替换的方案数量:
去了字节跳动,才知道年薪 40w 的测试工程师有这么多?
Is 35 really a career crisis? No, my skills are accumulating, and the more I eat, the better
[basis of recommendation system] sampling and construction of positive and negative samples
DNS 系列(一):为什么更新了 DNS 记录不生效?
RPA cloud computer, let RPA out of the box with unlimited computing power?
攻防世界Web进阶区unserialize3题解
从Starfish OS持续对SFO的通缩消耗,长远看SFO的价值
Trust orbtk development issues 2022
【编程题】【Scratch二级】2019.03 垃圾分类
Use filters to count URL request time
What if the testing process is not perfect and the development is not active?
韦东山第二期课程内容概要
[programming problem] [scratch Level 2] March 2019 draw a square spiral
Solution to prompt configure: error: curses library not found when configuring and installing crosstool ng tool