{"id":21334,"date":"2024-03-15T21:55:31","date_gmt":"2024-03-15T21:55:31","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/"},"modified":"2024-03-21T20:14:14","modified_gmt":"2024-03-21T20:14:14","slug":"how-to-remove-duplicate-elements-from-a-linked-list-in-c-language","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/","title":{"rendered":"&#8220;How to remove duplicate elements from a linked list in C language?&#8221;"},"content":{"rendered":"<p>To remove duplicate elements in a linked list, you can use a nested loop to iterate through the list. For each node, iterate through its subsequent nodes and delete any nodes with the same value as the current node.<\/p>\n<p>The specific implementation is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;stdio.h&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;stdlib.h&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ \u5b9a\u4e49\u94fe\u8868\u8282\u70b9<\/span>\r\n<span class=\"hljs-keyword\">typedef<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">struct<\/span> <span class=\"hljs-title\">Node<\/span> {<\/span>\r\n    <span class=\"hljs-type\">int<\/span> data;\r\n    <span class=\"hljs-class\"><span class=\"hljs-keyword\">struct<\/span> <span class=\"hljs-title\">Node<\/span>* <span class=\"hljs-title\">next<\/span>;<\/span>\r\n} Node;\r\n\r\n<span class=\"hljs-comment\">\/\/ \u521b\u5efa\u94fe\u8868<\/span>\r\nNode* <span class=\"hljs-title function_\">createList<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span>* arr, <span class=\"hljs-type\">int<\/span> size)<\/span> {\r\n    <span class=\"hljs-keyword\">if<\/span> (size == <span class=\"hljs-number\">0<\/span>) {\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">NULL<\/span>;\r\n    }\r\n    Node* head = (Node*)<span class=\"hljs-built_in\">malloc<\/span>(<span class=\"hljs-keyword\">sizeof<\/span>(Node));\r\n    head-&gt;data = arr[<span class=\"hljs-number\">0<\/span>];\r\n    head-&gt;next = <span class=\"hljs-literal\">NULL<\/span>;\r\n    Node* p = head;\r\n    <span class=\"hljs-type\">int<\/span> i;\r\n    <span class=\"hljs-keyword\">for<\/span> (i = <span class=\"hljs-number\">1<\/span>; i &lt; size; i++) {\r\n        Node* newNode = (Node*)<span class=\"hljs-built_in\">malloc<\/span>(<span class=\"hljs-keyword\">sizeof<\/span>(Node));\r\n        newNode-&gt;data = arr[i];\r\n        newNode-&gt;next = <span class=\"hljs-literal\">NULL<\/span>;\r\n        p-&gt;next = newNode;\r\n        p = p-&gt;next;\r\n    }\r\n    <span class=\"hljs-keyword\">return<\/span> head;\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ \u6253\u5370\u94fe\u8868<\/span>\r\n<span class=\"hljs-type\">void<\/span> <span class=\"hljs-title function_\">printList<\/span><span class=\"hljs-params\">(Node* head)<\/span> {\r\n    Node* p = head;\r\n    <span class=\"hljs-keyword\">while<\/span> (p != <span class=\"hljs-literal\">NULL<\/span>) {\r\n        <span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"%d \"<\/span>, p-&gt;data);\r\n        p = p-&gt;next;\r\n    }\r\n    <span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"\\n\"<\/span>);\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ \u5220\u9664\u94fe\u8868\u4e2d\u7684\u91cd\u590d\u5143\u7d20<\/span>\r\n<span class=\"hljs-type\">void<\/span> <span class=\"hljs-title function_\">removeDuplicates<\/span><span class=\"hljs-params\">(Node* head)<\/span> {\r\n    Node* p = head;\r\n    <span class=\"hljs-keyword\">while<\/span> (p != <span class=\"hljs-literal\">NULL<\/span>) {\r\n        Node* q = p;\r\n        <span class=\"hljs-keyword\">while<\/span> (q-&gt;next != <span class=\"hljs-literal\">NULL<\/span>) {\r\n            <span class=\"hljs-keyword\">if<\/span> (q-&gt;next-&gt;data == p-&gt;data) {\r\n                Node* temp = q-&gt;next;\r\n                q-&gt;next = q-&gt;next-&gt;next;\r\n                <span class=\"hljs-built_in\">free<\/span>(temp);\r\n            } <span class=\"hljs-keyword\">else<\/span> {\r\n                q = q-&gt;next;\r\n            }\r\n        }\r\n        p = p-&gt;next;\r\n    }\r\n}\r\n\r\n<span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">()<\/span> {\r\n    <span class=\"hljs-type\">int<\/span> arr[] = {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">5<\/span>};\r\n    <span class=\"hljs-type\">int<\/span> size = <span class=\"hljs-keyword\">sizeof<\/span>(arr) \/ <span class=\"hljs-keyword\">sizeof<\/span>(arr[<span class=\"hljs-number\">0<\/span>]);\r\n    Node* head = createList(arr, size);\r\n    <span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"\u539f\u59cb\u94fe\u8868\uff1a\"<\/span>);\r\n    printList(head);\r\n    removeDuplicates(head);\r\n    <span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"\u5220\u9664\u91cd\u590d\u5143\u7d20\u540e\u7684\u94fe\u8868\uff1a\"<\/span>);\r\n    printList(head);\r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>Result of execution:<\/p>\n<pre class=\"post-pre\"><code>\u539f\u59cb\u94fe\u8868\uff1a1 2 3 2 4 1 5 \r\n\u5220\u9664\u91cd\u590d\u5143\u7d20\u540e\u7684\u94fe\u8868\uff1a1 2 3 4 5 \r\n<\/code><\/pre>\n<p>Warning: memory should be released when deleting nodes to prevent memory leaks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To remove duplicate elements in a linked list, you can use a nested loop to iterate through the list. For each node, iterate through its subsequent nodes and delete any nodes with the same value as the current node. The specific implementation is as follows: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; \/\/ \u5b9a\u4e49\u94fe\u8868\u8282\u70b9 typedef struct Node { [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-21334","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>&quot;How to remove duplicate elements from a linked list in C language?&quot; - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"&quot;How to remove duplicate elements from a linked list in C language?&quot;\" \/>\n<meta property=\"og:description\" content=\"To remove duplicate elements in a linked list, you can use a nested loop to iterate through the list. For each node, iterate through its subsequent nodes and delete any nodes with the same value as the current node. The specific implementation is as follows: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; \/\/ \u5b9a\u4e49\u94fe\u8868\u8282\u70b9 typedef struct Node { [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T21:55:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T20:14:14+00:00\" \/>\n<meta name=\"author\" content=\"Liam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Liam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/\"},\"author\":{\"name\":\"Liam\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\"},\"headline\":\"&#8220;How to remove duplicate elements from a linked list in C language?&#8221;\",\"datePublished\":\"2024-03-15T21:55:31+00:00\",\"dateModified\":\"2024-03-21T20:14:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/\"},\"wordCount\":72,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/\",\"name\":\"\\\"How to remove duplicate elements from a linked list in C language?\\\" - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T21:55:31+00:00\",\"dateModified\":\"2024-03-21T20:14:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"&#8220;How to remove duplicate elements from a linked list in C language?&#8221;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\",\"name\":\"Liam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"caption\":\"Liam\"},\"sameAs\":[\"http:\/\/Wilson\"],\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\"How to remove duplicate elements from a linked list in C language?\" - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/","og_locale":"en_US","og_type":"article","og_title":"\"How to remove duplicate elements from a linked list in C language?\"","og_description":"To remove duplicate elements in a linked list, you can use a nested loop to iterate through the list. For each node, iterate through its subsequent nodes and delete any nodes with the same value as the current node. The specific implementation is as follows: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; \/\/ \u5b9a\u4e49\u94fe\u8868\u8282\u70b9 typedef struct Node { [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T21:55:31+00:00","article_modified_time":"2024-03-21T20:14:14+00:00","author":"Liam","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Liam","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/"},"author":{"name":"Liam","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671"},"headline":"&#8220;How to remove duplicate elements from a linked list in C language?&#8221;","datePublished":"2024-03-15T21:55:31+00:00","dateModified":"2024-03-21T20:14:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/"},"wordCount":72,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/","name":"\"How to remove duplicate elements from a linked list in C language?\" - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T21:55:31+00:00","dateModified":"2024-03-21T20:14:14+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-remove-duplicate-elements-from-a-linked-list-in-c-language\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"&#8220;How to remove duplicate elements from a linked list in C language?&#8221;"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671","name":"Liam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","caption":"Liam"},"sameAs":["http:\/\/Wilson"],"url":"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=21334"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21334\/revisions"}],"predecessor-version":[{"id":55190,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21334\/revisions\/55190"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=21334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=21334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=21334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}