<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>archive</title><link>https://archive-w.netlify.app/algo/linked/apply/</link><description>Recent content on archive</description><generator>Hugo</generator><language>zh-CN</language><atom:link href="https://archive-w.netlify.app/algo/linked/apply/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://archive-w.netlify.app/algo/linked/apply/cycle-linked/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://archive-w.netlify.app/algo/linked/apply/cycle-linked/</guid><description>&lt;ul>
&lt;li>
&lt;h2 id="introcycle-linked--环形链表检测">
 Intro(CYCLE-LINKED | 环形链表检测)
 &lt;a class="anchor" href="#introcycle-linked--%e7%8e%af%e5%bd%a2%e9%93%be%e8%a1%a8%e6%a3%80%e6%b5%8b">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>
&lt;h3 id="题目描述">
 题目描述
 &lt;a class="anchor" href="#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0">#&lt;/a>
&lt;/h3>
&lt;p class="warn">给定一个链表，如果它是有环链表，实现一个算法返回环路的开头节点。若环不存在，请返回 null。如下：&lt;/p> &lt;div class="docsify-example-panels"> &lt;div class="docsify-example-panel left-panel"style="max-width: 50%; width: 50%;">
&lt;div class="mermaid">graph LR;
 A[3] --&amp;gt; B[2];
 B --&amp;gt; C[0];
 C --&amp;gt; D[-4];
 D --&amp;gt; B;
 style B fill:#6f9,stroke:#333,stroke-width:4px;
&lt;/div>&lt;/div> &lt;div class="docsify-example-panel right-panel"style="max-width: 50%; width: 50%;">
&lt;div class="mermaid">graph LR;
 A[3] --&amp;gt; B[2];
 B --&amp;gt; C[0];
 C --&amp;gt; D[-4];
 D --&amp;gt; E[NULL];
&lt;/div>&lt;/div>&lt;/div>

&lt;div class="alert callout attention">&lt;p class="title">&lt;span class="icon icon-attention">&lt;/span> Attention &lt;/p>&lt;p> 在力扣题目 


 &lt;a href="https://leetcode.cn/problems/linked-list-cycle-lcci/description/" rel="noopener" target="_blank">面试题 02.08. 环路检测&lt;/a> 中，根据官方题解中第二种使用 &lt;strong>快慢指针&lt;/strong> 的方式，可以求得环形链表的环点。
&lt;br>但是有点费解的是，官方直接在首次相遇后推算出公式 &lt;span class="math inline">\(a=c+(n−1)(b+c)\)&lt;/span>，然后莫名其妙就判定如果此时使用&lt;code>pre&lt;/code>和&lt;code>slow&lt;/code>指针最终会在环点相遇。
&lt;br>&lt;br>对于我来理解的话，跨度有点大了。经 


 &lt;a href="https://www.bilibili.com/video/BV1if4y1d7ob/" rel="noopener" target="_blank">大佬视频&lt;/a> 的解释，慢慢理解了。
&lt;br>&lt;br>&lt;span style='color:red'>大概就是：只有在第一次快慢指针相遇后，才能的出公式 &lt;span class="math inline">\(a=c+(n−1)(b+c)\)&lt;/span>，其他时间这个公式不一定成立。而且对于公式中的 n 来说，必定 &amp;gt;= 1，不存在 0 即（快指针还没跑一圈呢，就和慢指针相遇了）的情况。在得出公式后，我们可以知道，在首次相遇后这个时间点，会存在 &lt;span class="math inline">\(a = c + x圈 \)&lt;/span> 这种关系。其中 a 和 c 只是距离问题，和快慢没关系了。所以在 &lt;strong>首次相遇&lt;/strong> 情况下，可以理解为两个人从 a 开头和 c 开头，均速往环点走，一定会在环点相遇，无非是第二个人从 c 点多可能走几圈而已。&lt;/p></description></item><item><title/><link>https://archive-w.netlify.app/algo/linked/apply/reverse-linked-list/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://archive-w.netlify.app/algo/linked/apply/reverse-linked-list/</guid><description>&lt;ul>
&lt;li>
&lt;h2 id="introreverse-linked-list--反转链表">
 Intro(REVERSE-LINKED-LIST | 反转链表)
 &lt;a class="anchor" href="#introreverse-linked-list--%e5%8f%8d%e8%bd%ac%e9%93%be%e8%a1%a8">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>
&lt;h3 id="题目描述">
 题目描述
 &lt;a class="anchor" href="#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0">#&lt;/a>
&lt;/h3>
&lt;p class="warn">给你单链表的头节点 head ，请你反转链表，并返回反转后的链表。如下：&lt;/p> &lt;div class="docsify-example-panels"> &lt;div class="docsify-example-panel left-panel"style="max-width: 50%; width: 50%;">
&lt;div class="mermaid">graph LR;
 A[1] --&amp;gt; B[2];
 B --&amp;gt; C[3];
 C --&amp;gt; D[4];
 D --&amp;gt; E[5];
 E --&amp;gt; F[NULL];
&lt;/div>&lt;/div> &lt;div class="docsify-example-panel right-panel"style="max-width: 50%; width: 50%;">
&lt;div class="mermaid">graph RL;
 E[5] --&amp;gt; D[4];
 D --&amp;gt; C[3];
 C --&amp;gt; B[2];
 B --&amp;gt; A[1];
 A[1] --&amp;gt; F[NULL];
&lt;/div>&lt;/div>&lt;/div>

&lt;div class="alert callout attention">&lt;p class="title">&lt;span class="icon icon-attention">&lt;/span> Attention &lt;/p>&lt;p> 在力扣题目 


 &lt;a href="https://leetcode.cn/problems/reverse-linked-list/description/?envType=problem-list-v2&amp;envId=linked-list" rel="noopener" target="_blank">206. 反转链表&lt;/a> 、


 &lt;a href="https://leetcode.cn/problems/fan-zhuan-lian-biao-lcof/description/" rel="noopener" target="_blank">剑指 Offer 24. 反转链表&lt;/a> 中，根据官方题解可知有 &lt;strong>迭代&lt;/strong> 和 &lt;strong>递归&lt;/strong> 的方式。
&lt;br>&lt;br>对于递归的方式暂时先不记录。只对迭代通过图形的方式加深印象。
&lt;br>&lt;img src="https://archive-w.netlify.app/.images/algo/linked/reverse-linked-list/rll-traversal-01.png" alt="" width="90%">&lt;/p></description></item></channel></rss>