(1)删除链表中等于给定值val的所有节点
给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。
(2)删除链表中重复的结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。
例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
(3)从尾到头打印链表
<code class="hljs lasso has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//笔试题:</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">/* 删除链表中等于给定值val的所有节点。 样例: 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。 */</span> struct Node{ int value; Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> next; }; Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> CreatNode(int value, Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> next <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NULL</span>){ Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> node <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">new</span> Node; node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>value <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> value; node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> next; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> node; } Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> Delete(Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> head, int x){ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (head <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">==</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NULL</span>){ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> head; } Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> prev <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> head; Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> cur <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> head<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> (cur <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">!=</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NULL</span>){ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (x <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">==</span> cur<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>value){ prev<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> cur<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next; cur <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> cur<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next; } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>{ prev <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> cur; cur <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> cur<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next; } } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (x <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">==</span> head<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>value){ head <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> head<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next; } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> head; } <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//打印链表</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">void</span> PrintList(Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> head){ Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> curr <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> head; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> (curr <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">!=</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NULL</span>){ cout <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;"><<</span> curr<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>value <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;"><<</span> ends; curr <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> curr<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next; } cout <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;"><<</span> endl; } <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//面试题5:从尾到头打印链表</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">void</span> PrintListFromTail(Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> head){ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (head <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">==</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NULL</span>){ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span>; } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>{ PrintListFromTail(head<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next); cout <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;"><<</span> head<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>value <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;"><<</span> ends; } } </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li></ul>
测试
<code class="hljs autohotkey has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">void test(){ Node* g = CreatNode(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> Node* f = CreatNode(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>,g)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> Node* e = CreatNode(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>,f)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> Node* d = CreatNode(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>,e)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> Node* c = CreatNode(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>,d)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> Node* b = CreatNode(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>,c)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> Node* <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">a</span> = CreatNode(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,b)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> PrintList(<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">a</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> Node* head=Delete(<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">a</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> PrintList(head)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> cout << endl<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> PrintListFromTail(head)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span> }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li></ul>
<code class="hljs lasso has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//删除已排序链表中重复的结点,重复节点不保留。</span> Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> DeleteDuplication(Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> head){ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (head <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">==</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NULL</span>){ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> head; } Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> first <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">new</span> Node; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//新建一个头结点就简单很多了</span> first<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> head; Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> last <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> first; Node<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">*</span> curr <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> head; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> (curr <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">!=</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NULL</span> <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">&</span> curr<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">!=</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NULL</span>){ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (curr<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>value <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">==</span> curr<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>value){ int v <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> curr<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>value; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> (v <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">==</span> curr<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>value){ curr <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> curr<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next; } last<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> curr; } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>{ last <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> curr; curr <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span> curr<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next; } } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> first<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-></span>next; }</code>