Skip to content

Commit e45d73a

Browse files
committed
deploy: 3ca7f17
1 parent 6470cd6 commit e45d73a

File tree

4 files changed

+230
-62
lines changed

4 files changed

+230
-62
lines changed

en/lc/19/index.html

Lines changed: 114 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -86050,7 +86050,7 @@ <h3 id="solution-1-fast-and-slow-pointers">Solution 1: Fast and Slow Pointers</h
8605086050
<p>We define two pointers <code>fast</code> and <code>slow</code>, both initially pointing to the dummy head node of the linked list.</p>
8605186051
<p>Next, the <code>fast</code> pointer moves forward $n$ steps first, then <code>fast</code> and <code>slow</code> pointers move forward together until the <code>fast</code> pointer reaches the end of the linked list. At this point, the node pointed to by <code>slow.next</code> is the predecessor of the $n$-th node from the end, and we can delete it.</p>
8605286052
<p>The time complexity is $O(n)$, where $n$ is the length of the linked list. The space complexity is $O(1)$.</p>
86053-
<div class="tabbed-set tabbed-alternate" data-tabs="1:10"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><input id="__tabbed_1_6" name="__tabbed_1" type="radio" /><input id="__tabbed_1_7" name="__tabbed_1" type="radio" /><input id="__tabbed_1_8" name="__tabbed_1" type="radio" /><input id="__tabbed_1_9" name="__tabbed_1" type="radio" /><input id="__tabbed_1_10" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">TypeScript</label><label for="__tabbed_1_6">Rust</label><label for="__tabbed_1_7">JavaScript</label><label for="__tabbed_1_8">None</label><label for="__tabbed_1_9">Ruby</label><label for="__tabbed_1_10">PHP</label></div>
86053+
<div class="tabbed-set tabbed-alternate" data-tabs="1:11"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><input id="__tabbed_1_6" name="__tabbed_1" type="radio" /><input id="__tabbed_1_7" name="__tabbed_1" type="radio" /><input id="__tabbed_1_8" name="__tabbed_1" type="radio" /><input id="__tabbed_1_9" name="__tabbed_1" type="radio" /><input id="__tabbed_1_10" name="__tabbed_1" type="radio" /><input id="__tabbed_1_11" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">TypeScript</label><label for="__tabbed_1_6">Rust</label><label for="__tabbed_1_7">JavaScript</label><label for="__tabbed_1_8">Swift</label><label for="__tabbed_1_9">Ruby</label><label for="__tabbed_1_10">C#</label><label for="__tabbed_1_11">PHP</label></div>
8605486054
<div class="tabbed-content">
8605586055
<div class="tabbed-block">
8605686056
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -86407,34 +86407,60 @@ <h3 id="solution-1-fast-and-slow-pointers">Solution 1: Fast and Slow Pointers</h
8640786407
</code></pre></div></td></tr></table></div>
8640886408
</div>
8640986409
<div class="tabbed-block">
86410-
<p><code>`swift linenums="1"
86411-
/**
86412-
* Definition for singly-linked list.
86413-
* public class ListNode {
86414-
* public var val: Int
86415-
* public var next: ListNode?
86416-
* public init() { self.val = 0; self.next = nil; }
86417-
* public init(_ val: Int) { self.val = val; self.next = nil; }
86418-
* public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; }
86419-
* }
86420-
*/
86421-
class Solution {
86422-
func removeNthFromEnd(_ head: ListNode?, _ n: Int) -&gt; ListNode? {
86423-
let dummy = ListNode(0)
86424-
dummy.next = head
86425-
var fast: ListNode? = dummy
86426-
var slow: ListNode? = dummy
86427-
for _ in 0..&lt;n {
86428-
fast = fast?.next
86429-
}
86430-
while fast?.next != nil {
86431-
fast = fast?.next
86432-
slow = slow?.next
86433-
}
86434-
slow?.next = slow?.next?.next
86435-
return dummy.next
86436-
}
86437-
}</code></p>
86410+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
86411+
<span class="normal"> 2</span>
86412+
<span class="normal"> 3</span>
86413+
<span class="normal"> 4</span>
86414+
<span class="normal"> 5</span>
86415+
<span class="normal"> 6</span>
86416+
<span class="normal"> 7</span>
86417+
<span class="normal"> 8</span>
86418+
<span class="normal"> 9</span>
86419+
<span class="normal">10</span>
86420+
<span class="normal">11</span>
86421+
<span class="normal">12</span>
86422+
<span class="normal">13</span>
86423+
<span class="normal">14</span>
86424+
<span class="normal">15</span>
86425+
<span class="normal">16</span>
86426+
<span class="normal">17</span>
86427+
<span class="normal">18</span>
86428+
<span class="normal">19</span>
86429+
<span class="normal">20</span>
86430+
<span class="normal">21</span>
86431+
<span class="normal">22</span>
86432+
<span class="normal">23</span>
86433+
<span class="normal">24</span>
86434+
<span class="normal">25</span>
86435+
<span class="normal">26</span>
86436+
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
86437+
<span class="cm"> * Definition for singly-linked list.</span>
86438+
<span class="cm"> * public class ListNode {</span>
86439+
<span class="cm"> * public var val: Int</span>
86440+
<span class="cm"> * public var next: ListNode?</span>
86441+
<span class="cm"> * public init() { self.val = 0; self.next = nil; }</span>
86442+
<span class="cm"> * public init(_ val: Int) { self.val = val; self.next = nil; }</span>
86443+
<span class="cm"> * public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; }</span>
86444+
<span class="cm"> * }</span>
86445+
<span class="cm"> */</span>
86446+
<span class="kd">class</span><span class="w"> </span><span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
86447+
<span class="w"> </span><span class="kd">func</span><span class="w"> </span><span class="nf">removeNthFromEnd</span><span class="p">(</span><span class="kc">_</span><span class="w"> </span><span class="n">head</span><span class="p">:</span><span class="w"> </span><span class="n">ListNode</span><span class="p">?,</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="n">ListNode</span><span class="p">?</span><span class="w"> </span><span class="p">{</span>
86448+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nv">dummy</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">ListNode</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
86449+
<span class="w"> </span><span class="n">dummy</span><span class="p">.</span><span class="n">next</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">head</span>
86450+
<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">fast</span><span class="p">:</span><span class="w"> </span><span class="n">ListNode</span><span class="p">?</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">dummy</span>
86451+
<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">slow</span><span class="p">:</span><span class="w"> </span><span class="n">ListNode</span><span class="p">?</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">dummy</span>
86452+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mf">0.</span><span class="p">.&lt;</span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
86453+
<span class="w"> </span><span class="n">fast</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">fast</span><span class="p">?.</span><span class="n">next</span>
86454+
<span class="w"> </span><span class="p">}</span>
86455+
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">fast</span><span class="p">?.</span><span class="n">next</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span>
86456+
<span class="w"> </span><span class="n">fast</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">fast</span><span class="p">?.</span><span class="n">next</span>
86457+
<span class="w"> </span><span class="n">slow</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">slow</span><span class="p">?.</span><span class="n">next</span>
86458+
<span class="w"> </span><span class="p">}</span>
86459+
<span class="w"> </span><span class="n">slow</span><span class="p">?.</span><span class="n">next</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">slow</span><span class="p">?.</span><span class="n">next</span><span class="p">?.</span><span class="n">next</span>
86460+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">dummy</span><span class="p">.</span><span class="n">next</span>
86461+
<span class="w"> </span><span class="p">}</span>
86462+
<span class="p">}</span>
86463+
</code></pre></div></td></tr></table></div>
8643886464
</div>
8643986465
<div class="tabbed-block">
8644086466
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -86514,6 +86540,60 @@ <h3 id="solution-1-fast-and-slow-pointers">Solution 1: Fast and Slow Pointers</h
8651486540
<span class="normal">23</span>
8651586541
<span class="normal">24</span>
8651686542
<span class="normal">25</span>
86543+
<span class="normal">26</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
86544+
<span class="cm"> * Definition for singly-linked list.</span>
86545+
<span class="cm"> * public class ListNode {</span>
86546+
<span class="cm"> * public int val;</span>
86547+
<span class="cm"> * public ListNode next;</span>
86548+
<span class="cm"> * public ListNode(int val=0, ListNode next=null) {</span>
86549+
<span class="cm"> * this.val = val;</span>
86550+
<span class="cm"> * this.next = next;</span>
86551+
<span class="cm"> * }</span>
86552+
<span class="cm"> * }</span>
86553+
<span class="cm"> */</span>
86554+
<span class="k">public</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
86555+
<span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n">ListNode</span><span class="w"> </span><span class="nf">RemoveNthFromEnd</span><span class="p">(</span><span class="n">ListNode</span><span class="w"> </span><span class="n">head</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86556+
<span class="w"> </span><span class="n">ListNode</span><span class="w"> </span><span class="n">dummy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">ListNode</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">head</span><span class="p">);</span>
86557+
<span class="w"> </span><span class="n">ListNode</span><span class="w"> </span><span class="n">fast</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dummy</span><span class="p">,</span><span class="w"> </span><span class="n">slow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dummy</span><span class="p">;</span>
86558+
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="o">--</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86559+
<span class="w"> </span><span class="n">fast</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fast</span><span class="p">.</span><span class="n">next</span><span class="p">;</span>
86560+
<span class="w"> </span><span class="p">}</span>
86561+
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">fast</span><span class="p">.</span><span class="n">next</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86562+
<span class="w"> </span><span class="n">slow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">slow</span><span class="p">.</span><span class="n">next</span><span class="p">;</span>
86563+
<span class="w"> </span><span class="n">fast</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fast</span><span class="p">.</span><span class="n">next</span><span class="p">;</span>
86564+
<span class="w"> </span><span class="p">}</span>
86565+
<span class="w"> </span><span class="n">slow</span><span class="p">.</span><span class="n">next</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">slow</span><span class="p">.</span><span class="n">next</span><span class="p">.</span><span class="n">next</span><span class="p">;</span>
86566+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">dummy</span><span class="p">.</span><span class="n">next</span><span class="p">;</span>
86567+
<span class="w"> </span><span class="p">}</span>
86568+
<span class="p">}</span>
86569+
</code></pre></div></td></tr></table></div>
86570+
</div>
86571+
<div class="tabbed-block">
86572+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
86573+
<span class="normal"> 2</span>
86574+
<span class="normal"> 3</span>
86575+
<span class="normal"> 4</span>
86576+
<span class="normal"> 5</span>
86577+
<span class="normal"> 6</span>
86578+
<span class="normal"> 7</span>
86579+
<span class="normal"> 8</span>
86580+
<span class="normal"> 9</span>
86581+
<span class="normal">10</span>
86582+
<span class="normal">11</span>
86583+
<span class="normal">12</span>
86584+
<span class="normal">13</span>
86585+
<span class="normal">14</span>
86586+
<span class="normal">15</span>
86587+
<span class="normal">16</span>
86588+
<span class="normal">17</span>
86589+
<span class="normal">18</span>
86590+
<span class="normal">19</span>
86591+
<span class="normal">20</span>
86592+
<span class="normal">21</span>
86593+
<span class="normal">22</span>
86594+
<span class="normal">23</span>
86595+
<span class="normal">24</span>
86596+
<span class="normal">25</span>
8651786597
<span class="normal">26</span>
8651886598
<span class="normal">27</span>
8651986599
<span class="normal">28</span>
@@ -86557,7 +86637,6 @@ <h3 id="solution-1-fast-and-slow-pointers">Solution 1: Fast and Slow Pointers</h
8655786637
<!-- solution:end -->
8655886638

8655986639
<!-- problem:end -->
86560-
<p>````</p>
8656186640

8656286641

8656386642

@@ -86586,6 +86665,11 @@ <h3 id="solution-1-fast-and-slow-pointers">Solution 1: Fast and Slow Pointers</h
8658686665

8658786666
<nav>
8658886667

86668+
<a href="https://github.com/djvelimir" class="md-author" title="@djvelimir">
86669+
86670+
<img src="https://avatars.githubusercontent.com/u/20823832?v=4&size=72" alt="djvelimir">
86671+
</a>
86672+
8658986673
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8659086674

8659186675
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">

en/search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)