@@ -12053,18 +12053,18 @@
1205312053 <ul class="md-nav__list">
1205412054
1205512055 <li class="md-nav__item">
12056- <a href="#solution-1" class="md-nav__link">
12056+ <a href="#solution-1-head-insertion-method " class="md-nav__link">
1205712057 <span class="md-ellipsis">
12058- Solution 1
12058+ Solution 1: Head Insertion Method
1205912059 </span>
1206012060 </a>
1206112061
1206212062</li>
1206312063
1206412064 <li class="md-nav__item">
12065- <a href="#solution-2" class="md-nav__link">
12065+ <a href="#solution-2-recursion " class="md-nav__link">
1206612066 <span class="md-ellipsis">
12067- Solution 2
12067+ Solution 2: Recursion
1206812068 </span>
1206912069 </a>
1207012070
@@ -87165,7 +87165,9 @@ <h2 id="description">Description</h2>
8716587165<h2 id="solutions">Solutions</h2>
8716687166<!-- solution:start -->
8716787167
87168- <h3 id="solution-1">Solution 1</h3>
87168+ <h3 id="solution-1-head-insertion-method">Solution 1: Head Insertion Method</h3>
87169+ <p>We create a dummy node <span class="arithmatex">\(\textit{dummy}\)</span>, then traverse the linked list and insert each node after the <span class="arithmatex">\(\textit{dummy}\)</span> node. After traversal, return <span class="arithmatex">\(\textit{dummy.next}\)</span>.</p>
87170+ <p>The time complexity is <span class="arithmatex">\(O(n)\)</span>, where <span class="arithmatex">\(n\)</span> is the length of the linked list. The space complexity is <span class="arithmatex">\(O(1)\)</span>.</p>
8716987171<div class="tabbed-set tabbed-alternate" data-tabs="1:8"><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" /><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">C#</label></div>
8717087172<div class="tabbed-content">
8717187173<div class="tabbed-block">
@@ -87529,15 +87531,15 @@ <h3 id="solution-1">Solution 1</h3>
8752987531<span class="cm"> */</span>
8753087532<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>
8753187533<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">ReverseList</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="p">{</span>
87532- <span class="w"> </span><span class="n">ListNode</span><span class="w"> </span><span class="n">pre </span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">null </span><span class="p">;</span>
87533- <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class=" n">ListNode</span><span class="w"> </span><span class="n">p </span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">head</span><span class="p">;</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="k">null</span><span class="p">;) </span>
87534- <span class="w"> </span><span class="p">{</span>
87535- <span class="w"> </span><span class="n">ListNode</span><span class="w"> </span><span class="n">t </span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">p </span><span class="p">.</span><span class="n">next</span><span class="p">;</span>
87536- <span class="w"> </span><span class="n">p </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">pre </span><span class="p">;</span>
87537- <span class="w"> </span><span class="n">pre </span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">p </span><span class="p">;</span>
87538- <span class="w"> </span><span class="n">p </span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">t </span><span class="p">;</span>
87534+ <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>
87535+ <span class="w"> </span><span class="n">ListNode</span><span class="w"> </span><span class="n">curr </span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">head</span><span class="p">;</span>
87536+ <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">curr</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>
87537+ <span class="w"> </span><span class="n">ListNode</span><span class="w"> </span><span class="n">next </span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">curr </span><span class="p">.</span><span class="n">next</span><span class="p">;</span>
87538+ <span class="w"> </span><span class="n">curr </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">dummy</span><span class="p">.</span><span class="n">next </span><span class="p">;</span>
87539+ <span class="w"> </span><span class="n">dummy </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">curr </span><span class="p">;</span>
87540+ <span class="w"> </span><span class="n">curr </span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">next </span><span class="p">;</span>
8753987541<span class="w"> </span><span class="p">}</span>
87540- <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">pre </span><span class="p">;</span>
87542+ <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>
8754187543<span class="w"> </span><span class="p">}</span>
8754287544<span class="p">}</span>
8754387545</code></pre></div></td></tr></table></div>
@@ -87548,8 +87550,10 @@ <h3 id="solution-1">Solution 1</h3>
8754887550
8754987551<!-- solution:start -->
8755087552
87551- <h3 id="solution-2">Solution 2</h3>
87552- <div class="tabbed-set tabbed-alternate" data-tabs="2:6"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><input id="__tabbed_2_5" name="__tabbed_2" type="radio" /><input id="__tabbed_2_6" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label><label for="__tabbed_2_2">Java</label><label for="__tabbed_2_3">C++</label><label for="__tabbed_2_4">Go</label><label for="__tabbed_2_5">TypeScript</label><label for="__tabbed_2_6">Rust</label></div>
87553+ <h3 id="solution-2-recursion">Solution 2: Recursion</h3>
87554+ <p>We recursively reverse all nodes from the second node to the end of the list, then attach the <span class="arithmatex">\(head\)</span> to the end of the reversed list.</p>
87555+ <p>The time complexity is <span class="arithmatex">\(O(n)\)</span>, and the space complexity is <span class="arithmatex">\(O(n)\)</span>. Where <span class="arithmatex">\(n\)</span> is the length of the linked list.</p>
87556+ <div class="tabbed-set tabbed-alternate" data-tabs="2:7"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><input id="__tabbed_2_5" name="__tabbed_2" type="radio" /><input id="__tabbed_2_6" name="__tabbed_2" type="radio" /><input id="__tabbed_2_7" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label><label for="__tabbed_2_2">Java</label><label for="__tabbed_2_3">C++</label><label for="__tabbed_2_4">Go</label><label for="__tabbed_2_5">TypeScript</label><label for="__tabbed_2_6">Rust</label><label for="__tabbed_2_7">C#</label></div>
8755387557<div class="tabbed-content">
8755487558<div class="tabbed-block">
8755587559<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -87823,6 +87827,52 @@ <h3 id="solution-2">Solution 2</h3>
8782387827<span class="p">}</span>
8782487828</code></pre></div></td></tr></table></div>
8782587829</div>
87830+ <div class="tabbed-block">
87831+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
87832+ <span class="normal"> 2</span>
87833+ <span class="normal"> 3</span>
87834+ <span class="normal"> 4</span>
87835+ <span class="normal"> 5</span>
87836+ <span class="normal"> 6</span>
87837+ <span class="normal"> 7</span>
87838+ <span class="normal"> 8</span>
87839+ <span class="normal"> 9</span>
87840+ <span class="normal">10</span>
87841+ <span class="normal">11</span>
87842+ <span class="normal">12</span>
87843+ <span class="normal">13</span>
87844+ <span class="normal">14</span>
87845+ <span class="normal">15</span>
87846+ <span class="normal">16</span>
87847+ <span class="normal">17</span>
87848+ <span class="normal">18</span>
87849+ <span class="normal">19</span>
87850+ <span class="normal">20</span>
87851+ <span class="normal">21</span>
87852+ <span class="normal">22</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
87853+ <span class="cm"> * Definition for singly-linked list.</span>
87854+ <span class="cm"> * public class ListNode {</span>
87855+ <span class="cm"> * public int val;</span>
87856+ <span class="cm"> * public ListNode next;</span>
87857+ <span class="cm"> * public ListNode(int val=0, ListNode next=null) {</span>
87858+ <span class="cm"> * this.val = val;</span>
87859+ <span class="cm"> * this.next = next;</span>
87860+ <span class="cm"> * }</span>
87861+ <span class="cm"> * }</span>
87862+ <span class="cm"> */</span>
87863+ <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>
87864+ <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">ReverseList</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="p">{</span>
87865+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">head</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">head</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>
87866+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">head</span><span class="p">;</span>
87867+ <span class="w"> </span><span class="p">}</span>
87868+ <span class="w"> </span><span class="n">ListNode</span><span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ReverseList</span><span class="p">(</span><span class="n">head</span><span class="p">.</span><span class="n">next</span><span class="p">);</span>
87869+ <span class="w"> </span><span class="n">head</span><span class="p">.</span><span class="n">next</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">head</span><span class="p">;</span>
87870+ <span class="w"> </span><span class="n">head</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>
87871+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ans</span><span class="p">;</span>
87872+ <span class="w"> </span><span class="p">}</span>
87873+ <span class="p">}</span>
87874+ </code></pre></div></td></tr></table></div>
87875+ </div>
8782687876</div>
8782787877</div>
8782887878<!-- solution:end -->
0 commit comments