{"id":28398,"date":"2024-03-16T10:15:35","date_gmt":"2024-03-16T10:15:35","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/"},"modified":"2024-03-22T13:21:49","modified_gmt":"2024-03-22T13:21:49","slug":"what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/","title":{"rendered":"What is the method for deleting a node in a linked list in C language?"},"content":{"rendered":"<p>There are several methods to delete a node from a linked list in the C language.<\/p>\n<ol>\n<li>Iterate through to find and delete: First go through the list, locate the node to be deleted, then have the pointer of the previous node point to the next node, and finally free the memory space of the deleted node.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title function_\">deleteNode<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">struct<\/span> Node** head_ref, <span class=\"hljs-type\">int<\/span> key)<\/span> {\r\n    <span class=\"hljs-class\"><span class=\"hljs-keyword\">struct<\/span> <span class=\"hljs-title\">Node<\/span>* <span class=\"hljs-title\">temp<\/span> =<\/span> *head_ref;\r\n    <span class=\"hljs-class\"><span class=\"hljs-keyword\">struct<\/span> <span class=\"hljs-title\">Node<\/span>* <span class=\"hljs-title\">prev<\/span> =<\/span> <span class=\"hljs-literal\">NULL<\/span>;\r\n  \r\n    <span class=\"hljs-keyword\">if<\/span> (temp != <span class=\"hljs-literal\">NULL<\/span> &amp;&amp; temp-&gt;data == key) {\r\n        *head_ref = temp-&gt;next;\r\n        <span class=\"hljs-built_in\">free<\/span>(temp);\r\n        <span class=\"hljs-keyword\">return<\/span>;\r\n    }\r\n  \r\n    <span class=\"hljs-keyword\">while<\/span> (temp != <span class=\"hljs-literal\">NULL<\/span> &amp;&amp; temp-&gt;data != key) {\r\n        prev = temp;\r\n        temp = temp-&gt;next;\r\n    }\r\n  \r\n    <span class=\"hljs-keyword\">if<\/span> (temp == <span class=\"hljs-literal\">NULL<\/span>) {\r\n        <span class=\"hljs-keyword\">return<\/span>;\r\n    }\r\n  \r\n    prev-&gt;next = temp-&gt;next;\r\n    <span class=\"hljs-built_in\">free<\/span>(temp);\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>Two-pointer deletion: Using two pointers, one pointing to the current node and the other pointing to the node before the current node. Traverse the linked list, when the node to be deleted is found, update the pointer of the previous node to point to the next node of the current node, then free up the memory space of the deleted node.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title function_\">deleteNode<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">struct<\/span> Node** head_ref, <span class=\"hljs-type\">int<\/span> key)<\/span> {\r\n    <span class=\"hljs-class\"><span class=\"hljs-keyword\">struct<\/span> <span class=\"hljs-title\">Node<\/span>* <span class=\"hljs-title\">temp<\/span> =<\/span> *head_ref;\r\n    <span class=\"hljs-class\"><span class=\"hljs-keyword\">struct<\/span> <span class=\"hljs-title\">Node<\/span>* <span class=\"hljs-title\">prev<\/span> =<\/span> <span class=\"hljs-literal\">NULL<\/span>;\r\n  \r\n    <span class=\"hljs-keyword\">while<\/span> (temp != <span class=\"hljs-literal\">NULL<\/span> &amp;&amp; temp-&gt;data != key) {\r\n        prev = temp;\r\n        temp = temp-&gt;next;\r\n    }\r\n  \r\n    <span class=\"hljs-keyword\">if<\/span> (temp == <span class=\"hljs-literal\">NULL<\/span>) {\r\n        <span class=\"hljs-keyword\">return<\/span>;\r\n    }\r\n  \r\n    <span class=\"hljs-keyword\">if<\/span> (prev == <span class=\"hljs-literal\">NULL<\/span>) {\r\n        *head_ref = temp-&gt;next;\r\n    } <span class=\"hljs-keyword\">else<\/span> {\r\n        prev-&gt;next = temp-&gt;next;\r\n    }\r\n  \r\n    <span class=\"hljs-built_in\">free<\/span>(temp);\r\n}\r\n<\/code><\/pre>\n<p>It is important to pay attention to handling the situation of deleting nodes in a linked list, especially in regards to the head and tail nodes, as well as freeing the memory space of the deleted nodes to prevent memory leaks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are several methods to delete a node from a linked list in the C language. Iterate through to find and delete: First go through the list, locate the node to be deleted, then have the pointer of the previous node point to the next node, and finally free the memory space of the deleted [&hellip;]<\/p>\n","protected":false},"author":6,"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-28398","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>What is the method for deleting a node in a linked list in C language? - 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\/what-is-the-method-for-deleting-a-node-in-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=\"What is the method for deleting a node in a linked list in C language?\" \/>\n<meta property=\"og:description\" content=\"There are several methods to delete a node from a linked list in the C language. Iterate through to find and delete: First go through the list, locate the node to be deleted, then have the pointer of the previous node point to the next node, and finally free the memory space of the deleted [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-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-16T10:15:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T13:21:49+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\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=\"Benjamin Taylor\" \/>\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\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"What is the method for deleting a node in a linked list in C language?\",\"datePublished\":\"2024-03-16T10:15:35+00:00\",\"dateModified\":\"2024-03-22T13:21:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/\"},\"wordCount\":173,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/\",\"name\":\"What is the method for deleting a node in a linked list in C language? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T10:15:35+00:00\",\"dateModified\":\"2024-03-22T13:21:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-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\":\"What is the method for deleting a node in a linked list in C language?\"}]},{\"@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\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the method for deleting a node in 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\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/","og_locale":"en_US","og_type":"article","og_title":"What is the method for deleting a node in a linked list in C language?","og_description":"There are several methods to delete a node from a linked list in the C language. Iterate through to find and delete: First go through the list, locate the node to be deleted, then have the pointer of the previous node point to the next node, and finally free the memory space of the deleted [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T10:15:35+00:00","article_modified_time":"2024-03-22T13:21:49+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"What is the method for deleting a node in a linked list in C language?","datePublished":"2024-03-16T10:15:35+00:00","dateModified":"2024-03-22T13:21:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/"},"wordCount":173,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/","name":"What is the method for deleting a node in a linked list in C language? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T10:15:35+00:00","dateModified":"2024-03-22T13:21:49+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-a-linked-list-in-c-language\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-deleting-a-node-in-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":"What is the method for deleting a node in a linked list in C language?"}]},{"@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\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28398","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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=28398"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28398\/revisions"}],"predecessor-version":[{"id":62694,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28398\/revisions\/62694"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=28398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=28398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=28398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}