{"id":2027,"date":"2020-07-01T09:51:36","date_gmt":"2020-07-01T09:51:36","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=2027"},"modified":"2022-11-28T10:01:08","modified_gmt":"2022-11-28T10:01:08","slug":"list-reduction","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/list-reduction\/","title":{"rendered":"List Reduction"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png\" alt=\"\" \/><\/p>\n<p>This blog Discusses the famous question \u201clist reduction in linked list\u201d. Linked list reduction plays an important role in improving your data structures like linked list. In linked list reduction, we have to remove the nodes. Criteria for removing nodes is the nodes with the same data and are next to each other will be removed from the linked list. Let\u2019s discuss the reduction list in detail.<\/p>\n<h2>Linked List Reduction:<\/h2>\n<blockquote>\n<p>Given a linked list of <code>N<\/code> nodes such that each node have a lower case alphabet <code>(a - z)<\/code>. Your task is to remove the nodes which have the same data and are next to each other.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/linked-list\/STRD\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<p><strong>For Example:<\/strong><\/p>\n<pre><code>Input : bddbcgdghgii\n\nOutput: cgdghg\n\nExplanation : bddbcgdghgii -&gt; bbcgdghg -&gt; cgdghg<\/code><\/pre>\n<h2>SOLVING APPROACH For Linked List Reduction:<\/h2>\n<ol>\n<li>\n<p>The idea is to create another list <code>temp<\/code> to store the reduced version of the original list.<\/p>\n<\/li>\n<li>\n<p>Traverse the original list and perform the following operations:<\/p>\n<ul>\n<li>If the <code>temp<\/code> list is empty, simply append the current element into the list.<\/li>\n<li>If the <code>temp<\/code> list is not empty, check if the last element inserted is equal to the current element, If <code>Yes<\/code> remove the last element added.<\/li>\n<li>Else if the last element is not equal to the current element, append the current element into the list. Finally our original list will be reduced and stored in the <code>temp<\/code> list.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>ILLUSTRATION For Linked List Reduction:<\/h3>\n<pre><code>list = bddbcgdghgii\ntemp is empty\n\nStart traversing the list :-\n\nfor 1st element b, temp is empty so append into it \ntemp = b\n\nfor 2nd element d, b is not equal to d so append into it\ntemp = bd\n\nfor 3rd element d, d is equal to d so remove already added d\ntemp = b\n\nfor 4th element b, b is equal to b so remove already added b, temp becomes empty now\ntemp = \n\nfor 5th element c, temp is empty so append into it\ntemp = c\n\nfor 6th element g, g is not equal to c so append into it\ntemp = cg\n\nfor 7th element d, d is not equal to g so append into it\ntemp = cgd\n\nfor 8th element g, g is not equal to d so append into it\ntemp = cgdg\n\nfor 9th element h, h is not equal to g so append into it\ntemp = cgdgh\n\nfor 10th element g, g is not equal to h so append into it\ntemp = cgdghg\n\nfor 11th element i, i is not equal to g so append into it\ntemp = cgdghgi\n\nfor 12th element i, i is equal to i so remove already added i\ntemp = cgdghg\n\nSo, our final reduced list is cgdghg<\/code><\/pre>\n<h2>SOLUTIONS For Linked List Reduction:<\/h2>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_2038 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_2038 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_2038 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_2038 .wpsm_nav-tabs > li.active > a, #tab_container_2038 .wpsm_nav-tabs > li.active > a:hover, #tab_container_2038 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_2038 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_2038 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_2038 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_2038 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_2038 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_2038 .wpsm_nav-tabs > li > a:hover , #tab_container_2038 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_2038 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_2038 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_2038 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_2038 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_2038 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_2038 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_2038 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2038 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_2038 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2038 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_2038 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_2038\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_2038\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2038_1\" aria-controls=\"tabs_desc_2038_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2038_2\" aria-controls=\"tabs_desc_2038_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2038_3\" aria-controls=\"tabs_desc_2038_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2038_4\" aria-controls=\"tabs_desc_2038_4\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Python<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_2038\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_2038_1\">\r\n\t\t\t\t\t\t\t\t\r\n<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n#include &lt;string.h&gt;\r\ntypedef struct Node {\r\n    char value;\r\n    struct Node *next;\r\n}Node;\r\n\r\nNode* CreateNode(Node *head, char val)\r\n{\r\n    Node *newnode = (struct Node*)malloc(sizeof(struct Node));\r\n    newnode-&gt;value = val ;\r\n    newnode-&gt;next = NULL ;\r\n    if ( head == NULL ) {\r\n        head = newnode ;\r\n    }\r\n    else\r\n    {\r\n        newnode-&gt;next=head;\r\n        head=newnode;\r\n    }\r\n    return head ;\r\n}\r\n\r\nvoid printList(Node *head) {\r\n    Node *temp = head ;\r\n    if (temp) {\r\n        while ( temp!= NULL ) {\r\n            printf ( &quot;%c&quot;, temp-&gt;value ) ;\r\n            temp = temp-&gt;next ;\r\n        }\r\n    }\r\n}\r\n\r\nNode* ListDestruction(Node *Head)\r\n{\r\n\r\n    Node *head = NULL,*t=Head;\r\n    while(t!=NULL)\r\n     {\r\n        char ch=t-&gt;value;\r\n\r\n        if(head == NULL)\r\n            head = CreateNode(head, ch);\r\n        else {\r\n            if(head-&gt;value == ch) {\r\n                Node *temp = head;\r\n                head = head-&gt;next;\r\n                free(temp);\r\n            }\r\n            else {\r\n                head = CreateNode(head,ch);\r\n            }\r\n        }\r\n        t=t-&gt;next;\r\n    }\r\n\r\n    return head;\r\n\r\n}\r\n\r\nint main()\r\n{\r\n    struct  Node *head = NULL ;\r\n    int size, i;\r\n    char val[100005];\r\n    scanf(&quot;%d&quot;, &amp;size);\r\n    scanf(&quot; %s&quot;, val);\r\n\r\n\r\n    for ( i = 0 ; i &lt; size ; i ++ ) {\r\n        char ch=val[i];\r\n        head = CreateNode(head, ch) ;\r\n    }\r\n\r\n    head = ListDestruction(head);\r\n    if(head!=NULL)\r\n        printList(head);\r\n    else\r\n        printf(&quot;-1&quot;);\r\n\r\n\r\n    return 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_2038_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\nstruct Node {\r\n    char data;\r\n    struct Node *next;\r\n};\r\n\r\nNode *insert( Node *head, char ch) {\r\n    Node *node = new Node();\r\n    if(head==NULL) {\r\n        head = new Node();\r\n        head-&gt;data = ch;\r\n        return head;\r\n    }\r\n    node-&gt;data = ch;\r\n    node-&gt;next = head;\r\n    return node;\r\n}\r\n\r\nvoid PrintList(Node *head)\r\n{\r\n    if(head == NULL)\r\n        return;\r\n    while(head!=NULL){\r\n        cout&lt;&lt;head-&gt;data;\r\n        head=head-&gt;next;\r\n    }\r\n}\r\n\r\nNode* ListDestruction(Node *Head)\r\n{\r\n\r\n    Node *head = NULL,*t=Head;\r\n    while(t!=NULL)\r\n     {\r\n        char ch=t-&gt;data;\r\n\r\n        if(head == NULL)\r\n            head = insert( head,ch);\r\n        else {\r\n            if(head-&gt;data == ch) {\r\n                Node *temp = head;\r\n                head = head-&gt;next;\r\n                free(temp);\r\n            }\r\n            else {\r\n                head = insert(head,ch);\r\n            }\r\n        }\r\n        t=t-&gt;next;\r\n    }\r\n\r\n    return head;\r\n\r\n}\r\n\r\nint main()\r\n{\r\n    struct  Node *head = NULL, *temp ;\r\n    int size, i;\r\n    string val;\r\n    cin&gt;&gt;size;\r\n    cin&gt;&gt;val;\r\n    for ( i = 0 ; i &lt; size ; i ++ ) {\r\n        char ch=val[i];\r\n        head = insert(head, ch) ;\r\n    }\r\n    temp=ListDestruction(head);\r\n    if(temp!=NULL)\r\n        PrintList(temp);\r\n    else\r\n        cout&lt;&lt;-1;\r\n    return 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_2038_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport java.io.*;\r\nimport java.util.*;\r\npublic class Main\r\n{\r\n    static class SinglyLinkedListNode {\r\n        char value;\r\n        SinglyLinkedListNode next;\r\n        SinglyLinkedListNode(char nodeData) {\r\n           this.value = nodeData;\r\n           this.next = null;\r\n       }\r\n   }\r\n    static class SinglyLinkedList {\r\n        public SinglyLinkedListNode head;\r\n        public SinglyLinkedListNode tail;\r\n\r\n        public SinglyLinkedList() {\r\n            this.head = null;\r\n            this.tail = null;\r\n        }\r\n\r\n        public void insertNode( char nodeData) {\r\n            SinglyLinkedListNode node = new SinglyLinkedListNode(nodeData);\r\n\r\n            if (this.head == null) {\r\n                this.head = node;\r\n                this.tail=node;\r\n\r\n            } else {\r\n                SinglyLinkedListNode temp=this.head;\r\n                this.head=node;\r\n                this.head.next =temp;\r\n            }\r\n        }\r\n    }\r\n    static void printLinkedList( SinglyLinkedListNode head)\r\n    {\r\n        SinglyLinkedListNode temp=head;\r\n        while(temp!=null)\r\n        {\r\n            System.out.print(temp.value);\r\n            temp=temp.next;\r\n        }\r\n    }\r\n\r\n    static SinglyLinkedList ListDestruction(SinglyLinkedList list)\r\n        {\r\n            SinglyLinkedList temp = new SinglyLinkedList();\r\n            SinglyLinkedListNode current = list.head; \r\n            SinglyLinkedListNode prev = null;\r\n\r\n          while (current != null)\r\n          {\r\n                if (temp.head == null || temp.head.value != current.value) {\r\n                    temp.insertNode(current.value);\r\n                } else {\r\n                    temp.head = temp.head.next;\r\n                }\r\n\r\n                current = current.next; \r\n          }\r\n          return temp;\r\n        }\r\n\r\n    private static Scanner scanner = new Scanner(System.in);\r\n    public static void main( String[] args) throws IOException {\r\n\r\n        SinglyLinkedList llist = new SinglyLinkedList();\r\n        int size = scanner.nextInt();\r\n        scanner.nextLine();\r\n        String val = scanner.next();\r\n\r\n        for (int i = 0; i &lt; size; i++) {\r\n            char ch = val.charAt(i);\r\n\r\n                llist.insertNode(ch);\r\n            }\r\n         SinglyLinkedList ans = ListDestruction(llist);\r\n         if (ans.head == null) {\r\n             System.out.println(&quot;-1&quot;);\r\n         } else {\r\n            printLinkedList(ans.head);\r\n         }\r\n    }\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_2038_4\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"python\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nclass Node:\r\n\tdef __init__(self, data):\r\n\t\tself.data = data\r\n\t\tself.next = None\r\n\r\ndef ListDestruction(Head):\r\n\t\r\n\thead = None\r\n\tt = Head\r\n\twhile t:\r\n\t\tch = t.data\r\n\r\n\t\tif head == None:\r\n\t\t\thead = push(head, ch)\r\n\t\telse:\r\n\t\t\tif head.data == ch:\r\n\t\t\t\ttemp = head\r\n\t\t\t\thead = head.next\r\n\t\t\t\tdel temp\r\n\t\t\telse:\r\n\t\t\t\thead = push(head, ch)\r\n\t\tt = t.next\r\n\treturn head\r\n\r\ndef push(head_ref, new_data):\r\n\t\r\n\tnew_node = Node(new_data)\r\n\tnew_node.data = new_data\r\n\tnew_node.next = head_ref\r\n\thead_ref = new_node\r\n\treturn head_ref\r\n\r\ndef printList(node):\r\n\twhile (node != None):\r\n\t\tprint(node.data, end = &quot; &quot;)\r\n\t\tnode = node.next\r\n\t\r\nif __name__=='__main__':\r\n\t\r\n\thead = None\r\n\r\n\tfor i in &quot;bddbcgdghgii&quot;:\r\n\t\thead = push(head, i)\r\n\r\n\thead = ListDestruction(head)\r\n\r\n\tprintList(head)\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_2038 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_2038 a\"),jQuery(\"#tab-content_2038\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p><strong>Space Complexity For Linked List Reduction<\/strong>: <code>O(N)<\/code>, for creating an <code>Additional linked list<\/code>.<\/p>\n<p>This blog discusses the most efficient approach for the linked list reduction. Questions like linked list reduction always give a challenge for a programmer. Conquering linked list reduction will lead to one step moving towards your goals. To practice more problems on Linked list you can check out <a href=\"#\"><\/a>.<\/p>\n<h2>FAQ<\/h2>\n<p><strong>1. How is data removed from a linked list?<\/strong><br \/>\nTo delete a node from the linked list, we need to do the following steps:<\/p>\n<ul>\n<li>Find the previous node of the node to be deleted.<\/li>\n<li>Change the next of the previous node.<\/li>\n<li>Free memory for the node to be deleted.<\/li>\n<\/ul>\n<p><strong>2. What are the 3 conditions in deleting a node in a linked list?<\/strong><br \/>\nTo delete a node from the linked list, we need to do the following steps.<\/p>\n<ul>\n<li>Find the previous node of the node to be deleted.<\/li>\n<li>Change the next to the previous node.<\/li>\n<li>Free memory for the node to be deleted.<\/li>\n<\/ul>\n<p><strong>3. Which companies recently asked linked list reduction questions in their technical interviews?<\/strong><br \/>\nSamsung, Josh Technologies, Squadstack and IndiaMart in their recent interviews have asked about the linked list reduction.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This blog Discusses the famous question \u201clist reduction in linked list\u201d. Linked list reduction plays an important role in improving your data structures like linked list. In linked list reduction, we have to remove the nodes. Criteria for removing nodes is the nodes with the same data and are next to each other will be [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[125],"tags":[],"class_list":["post-2027","post","type-post","status-publish","format-standard","hentry","category-linked-list"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>List Reduction | Linked List | Prepbytes<\/title>\n<meta name=\"description\" content=\"The Idea Is to Create Another List Temp to Store the Reduced Version of the Original List.traverse the Original List and Perform the Following Operations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/list-reduction\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"List Reduction | Linked List | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"The Idea Is to Create Another List Temp to Store the Reduced Version of the Original List.traverse the Original List and Perform the Following Operations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/list-reduction\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-01T09:51:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-28T10:01:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"List Reduction\",\"datePublished\":\"2020-07-01T09:51:36+00:00\",\"dateModified\":\"2022-11-28T10:01:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/\"},\"wordCount\":407,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png\",\"articleSection\":[\"Linked list articles\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/list-reduction\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/\",\"name\":\"List Reduction | Linked List | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png\",\"datePublished\":\"2020-07-01T09:51:36+00:00\",\"dateModified\":\"2022-11-28T10:01:08+00:00\",\"description\":\"The Idea Is to Create Another List Temp to Store the Reduced Version of the Original List.traverse the Original List and Perform the Following Operations.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/list-reduction\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/list-reduction\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linked list articles\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/linked-list\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"List Reduction\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"List Reduction | Linked List | Prepbytes","description":"The Idea Is to Create Another List Temp to Store the Reduced Version of the Original List.traverse the Original List and Perform the Following Operations.","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:\/\/prepbytes.com\/blog\/list-reduction\/","og_locale":"en_US","og_type":"article","og_title":"List Reduction | Linked List | Prepbytes","og_description":"The Idea Is to Create Another List Temp to Store the Reduced Version of the Original List.traverse the Original List and Perform the Following Operations.","og_url":"https:\/\/prepbytes.com\/blog\/list-reduction\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-01T09:51:36+00:00","article_modified_time":"2022-11-28T10:01:08+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"List Reduction","datePublished":"2020-07-01T09:51:36+00:00","dateModified":"2022-11-28T10:01:08+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/"},"wordCount":407,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png","articleSection":["Linked list articles"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/list-reduction\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/","url":"https:\/\/prepbytes.com\/blog\/list-reduction\/","name":"List Reduction | Linked List | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png","datePublished":"2020-07-01T09:51:36+00:00","dateModified":"2022-11-28T10:01:08+00:00","description":"The Idea Is to Create Another List Temp to Store the Reduced Version of the Original List.traverse the Original List and Perform the Following Operations.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/list-reduction\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645527281916-Article_378.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/list-reduction\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Linked list articles","item":"https:\/\/prepbytes.com\/blog\/category\/linked-list\/"},{"@type":"ListItem","position":3,"name":"List Reduction"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=2027"}],"version-history":[{"count":12,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2027\/revisions"}],"predecessor-version":[{"id":10789,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2027\/revisions\/10789"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=2027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=2027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=2027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}