删除链表中等于给定值val的所有节点

2024-01-29 07:18

本文主要是介绍删除链表中等于给定值val的所有节点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(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>

这篇关于删除链表中等于给定值val的所有节点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656145

相关文章

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

使用Python在Excel中插入、修改、提取和删除超链接

《使用Python在Excel中插入、修改、提取和删除超链接》超链接是Excel中的常用功能,通过点击超链接可以快速跳转到外部网站、本地文件或工作表中的特定单元格,有效提升数据访问的效率和用户体验,这... 目录引言使用工具python在Excel中插入超链接Python修改Excel中的超链接Python

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W