{"id":2026,"date":"2020-07-01T09:51:30","date_gmt":"2020-07-01T09:51:30","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=2026"},"modified":"2022-05-23T11:16:33","modified_gmt":"2022-05-23T11:16:33","slug":"arrange-the-list","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/","title":{"rendered":"Arrange the List"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.png\" alt=\"\" \/><\/p>\n<h3>CONCEPTS USED:<\/h3>\n<blockquote>\n<p>Basic Pointer Manipulation<\/p>\n<\/blockquote>\n<h3>DIFFICULTY LEVEL:<\/h3>\n<blockquote>\n<p>Medium <\/p>\n<\/blockquote>\n<h3>PROBLEM STATEMENT<code>(<\/code>SIMPLIFIED<code>)<\/code>:<\/h3>\n<blockquote>\n<p>Given a linked list of <code>N<\/code> nodes such that the list is sorted in two parts, the first part and second part are sorted in increasing order independently. Your task is to arrange the linked list in sorted manner.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/linked-list\/REARRANGELIST\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h4>For Example:<\/h4>\n<pre><code>Input : 3 -&gt; 4 -&gt; 6 -&gt; 7 -&gt; 8 -&gt; 2 -&gt; 3 -&gt; 4\n\nOutput : 2 -&gt; 3 -&gt; 3 -&gt; 4 -&gt; 4 -&gt; 6 -&gt; 7 -&gt; 8\n\nExplanation : 3 -&gt; 4 -&gt; 6 -&gt; 7 -&gt; 8 and 2 -&gt; 3 -&gt; 4 were separately sorted two list which we have combined to form a single sorted list as 2 -&gt; 3 -&gt; 3 -&gt; 4 -&gt; 4 -&gt; 6 -&gt; 7 -&gt; 8.<\/code><\/pre>\n<h3>OBSERVATION :<\/h3>\n<blockquote>\n<p>The problem can be seen as merging two sorted linked list in-place i.e. without using any extra space.<\/p>\n<\/blockquote>\n<h3>SOLVING APPROACH:<\/h3>\n<blockquote>\n<ol>\n<li>\n<p>We already have the <code>head<\/code> of our first list as the <code>head<\/code> of our original list, now we need to <a href=\"https:\/\/prepbytes.com\/blog\/basic-pointer-manipulation\/arrange-the-salary\/\">learn online programming courses<\/a> to find the <code>head<\/code> of the second list, this can be easily done by traversing the list and checking wherever the <code>i<sup>th<\/sup><\/code> node value becomes greater than the <code>(i+1)<sup>th<\/sup><\/code> node value. Then <code>(i+1)<sup>th<\/sup><\/code> node is our <code>head<\/code> pointer for the second list.<\/p>\n<\/li>\n<li>\n<p>Now create a new <code>newHead<\/code> that will point to our newly created list.<\/p>\n<\/li>\n<li>\n<p>Now Keep traversing the former two lists simultaneously, and appending the smaller node out of the two in the new list. Also increment the pointer of the smaller node to point to the next node.<\/p>\n<\/li>\n<li>\n<p>In this way all the elements from both the list will be appended to the new list. Keep doing this process till any of the list becomes empty, then append all the remaining nodes to the new list.<\/p>\n<\/li>\n<\/ol>\n<\/blockquote>\n<h3>ALGORITHM :<\/h3>\n<p><IMG SRC=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1646390927820-arrange%20the%20list-01.png\"><\/p>\n<h3>SOLUTIONS:<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_2037 {\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_2037 .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_2037 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_2037 .wpsm_nav-tabs > li.active > a, #tab_container_2037 .wpsm_nav-tabs > li.active > a:hover, #tab_container_2037 .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_2037 .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_2037 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_2037 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_2037 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_2037 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_2037 .wpsm_nav-tabs > li > a:hover , #tab_container_2037 .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_2037 .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_2037 .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_2037 .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_2037 .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_2037 .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_2037 .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_2037 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2037 .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_2037 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2037 .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_2037 .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_2037\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_2037\">\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_2037_1\" aria-controls=\"tabs_desc_2037_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_2037_2\" aria-controls=\"tabs_desc_2037_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_2037_3\" aria-controls=\"tabs_desc_2037_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\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_2037\">\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_2037_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\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{\r\n    int value;\r\n    struct Node* next;\r\n}Node;\r\n\r\nNode* CreateNode(Node *head, int 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    static Node *temp;\r\n    if ( head == NULL ) {\r\n        head = newnode ;\r\n        temp=head;\r\n    }\r\n    else\r\n    {\r\n        temp-&gt;next = newnode ;\r\n        temp =temp-&gt;next;\r\n    }\r\n    return head ;\r\n}\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;%d &quot;, temp-&gt;value ) ;\r\n            temp = temp-&gt;next ;\r\n        }\r\n    }\r\n}\r\n\r\nNode* RearrangeLists(Node* head)\r\n{\r\n  \/* if head contains 0 or 1 elements *\/\r\n  if(head == NULL || head-&gt;next == NULL)\r\n    return head;\r\n\r\n  Node *temp = head;\r\n  Node *part = NULL;\r\n  Node *partition = NULL;\r\n\r\n  \/* findint the point of partition between two head *\/\r\n  while(temp-&gt;next != NULL){\r\n    if(temp-&gt;value &gt; temp-&gt;next-&gt;value){\r\n      part = temp;\r\n      partition = temp-&gt;next;\r\n      break;\r\n    }\r\n    temp = temp-&gt;next;\r\n  }\r\n\r\n  \/* if there exits no partition *\/\r\n  if(partition == NULL)\r\n    return head;\r\n\r\n  \/* set last element of head 1 to point to NULL *\/\r\n  part-&gt;next = NULL;\r\n\r\n  \/* Now we have two different head *\/\r\n\r\n  Node *p = head; \r\n  Node *q = partition;\r\n\r\n  Node *sorting = NULL;\r\n\r\n  if(p != NULL &amp;&amp; q != NULL){\r\n    if(p-&gt;value &lt; q-&gt;value){\r\n      sorting = p;\r\n      p = p-&gt;next;\r\n    }\r\n    else{\r\n      sorting = q;\r\n      q = q-&gt;next;\r\n    }\r\n  }\r\n\r\n  \/* Head of the new linked head *\/\r\n  Node *newHead = sorting;\r\n\r\n   while(p != NULL &amp;&amp; q != NULL){\r\n    if(p-&gt;value &lt; q-&gt;value){\r\n      sorting-&gt;next = p;\r\n      sorting = p;\r\n      p = p-&gt;next;\r\n    }\r\n    else{\r\n      sorting-&gt;next = q;\r\n      sorting = q;\r\n      q = q-&gt;next;\r\n    }\r\n  }\r\n\r\n  if(p == NULL) sorting-&gt;next = q;\r\n  if(q == NULL) sorting-&gt;next = p;\r\n\r\n  return newHead;\r\n}\r\n\r\n\r\nint main() {\r\n\r\n    int t;\r\n    scanf(&quot;%d&quot;, &amp;t);\r\n    while(t--){\r\n\r\n        Node *head = NULL, *temp ;\r\n        int size,val;\r\n        scanf(&quot;%d&quot;, &amp;size);\r\n        for ( int i = 0 ; i &lt; size ; i ++ ) {\r\n            scanf(&quot;%d&quot;, &amp;val);\r\n            head = CreateNode(head, val) ;\r\n        }\r\n\r\n        temp = RearrangeLists(head) ;\r\n            printList(temp);\r\n\r\n        printf(&quot;&#92;n&quot;);\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_2037_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\r\n#include &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\ntypedef struct Node\r\n{\r\n    int data;\r\n    struct Node* next;\r\n}Node;\r\n\r\nNode* CreateNode(Node *head, int val)\r\n{\r\n    Node *newnode = new Node;\r\n    newnode-&gt;data = val ;\r\n    newnode-&gt;next = NULL ;\r\n    static Node *temp;\r\n    if ( head == NULL ) {\r\n        head = newnode ;\r\n        temp=head;\r\n    }\r\n    else\r\n    {\r\n        temp-&gt;next = newnode ;\r\n        temp =temp-&gt;next;\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            cout&lt;&lt;temp-&gt;data&lt;&lt;&quot; &quot;;\r\n            temp = temp-&gt;next ;\r\n        }\r\n    }\r\n}\r\n\r\nNode* RearrangeLists(Node* list)\r\n{\r\n  if(list == NULL || list-&gt;next == NULL)\r\n    return list;\r\n\r\n    Node *temp = list;\r\n\r\n\r\n    Node *part = NULL;\r\n    Node *partition = NULL;\r\n    int f = 0;\r\n\r\n\r\n    \/* findint the point of partition between two list *\/\r\n    while(temp-&gt;next != NULL){\r\n      if(temp-&gt;data &gt; temp-&gt;next-&gt;data){\r\n        part = temp;\r\n        partition = temp-&gt;next;\r\n        break;\r\n      }\r\n      temp = temp-&gt;next;\r\n    }\r\n\r\n    \/* if there exits no partition *\/\r\n    if(partition == NULL)\r\n      return list;\r\n\r\n    \/* set last element of list 1 to point to NULL *\/\r\n    part-&gt;next = NULL;\r\n\r\n    \/* Now we have two different list *\/\r\n\r\n    Node *p = list; \r\n    Node *q = partition;\r\n\r\n    Node *sorting = NULL;\r\n\r\n    if(p != NULL &amp;&amp; q != NULL){\r\n      if(p-&gt;data &lt; q-&gt;data){\r\n        sorting = p;\r\n        p = p-&gt;next;\r\n      }\r\n      else{\r\n        sorting = q;\r\n        q = q-&gt;next;\r\n      }\r\n    }\r\n\r\n    \/* Head of the new linked list *\/\r\n    Node *head = sorting;\r\n\r\n     while(p != NULL &amp;&amp; q != NULL){\r\n      if(p-&gt;data &lt; q-&gt;data){\r\n        sorting-&gt;next = p;\r\n        sorting = p;\r\n        p = p-&gt;next;\r\n      }\r\n      else{\r\n        sorting-&gt;next = q;\r\n        sorting = q;\r\n        q = q-&gt;next;\r\n      }\r\n    }\r\n\r\n    if(p == NULL) sorting-&gt;next = q;\r\n    if(q == NULL) sorting-&gt;next = p;\r\n\r\n    return head;\r\n}\r\n\r\n\r\nint main() {\r\n\r\n    int t;\r\n    cin&gt;&gt;t;\r\n    while(t--){\r\n\r\n        Node *head = NULL, *temp ;\r\n        int size,val;\r\n        cin&gt;&gt;size;\r\n        for ( int i = 0 ; i &lt; size ; i ++ ) {\r\n            cin&gt;&gt;val;\r\n            head = CreateNode(head, val) ;\r\n        }\r\n\r\n        temp =RearrangeLists(head) ;\r\n        if ( temp != NULL )\r\n            printList(temp);\r\n        cout&lt;&lt;endl;\r\n    }\r\n    return 0;\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_2037_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    static class SinglyLinkedListNode {\r\n        public int value;\r\n        public SinglyLinkedListNode next;\r\n        public SinglyLinkedListNode(int 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        public void insertNode(int nodeData) {\r\n            SinglyLinkedListNode node = new SinglyLinkedListNode(nodeData);\r\n\r\n            if (this.head == null) {\r\n                this.head = node;\r\n            } else {\r\n                this.tail.next = node;\r\n            }\r\n            this.tail = node;\r\n        }\r\n    }\r\n\r\n    static void printLinkedList(SinglyLinkedListNode head) {\r\n        SinglyLinkedListNode temp = head;\r\n        while (temp != null) {\r\n            System.out.print(temp.value + &quot; &quot;);\r\n            temp = temp.next;\r\n        }\r\n    }\r\n\r\n    static SinglyLinkedListNode RearrangeLists(SinglyLinkedListNode list)\r\n    {\r\n        \/* if list contains 0 or 1 elements *\/\r\n        if(list == null || list.next == null)\r\n            return list;\r\n\r\n        SinglyLinkedListNode temp = list;\r\n        SinglyLinkedListNode part = null;\r\n        SinglyLinkedListNode partition = null;\r\n\r\n        \/* findint the point of partition between two list *\/\r\n        while(temp.next != null){\r\n            if(temp.value &gt; temp.next.value){\r\n            part = temp;\r\n            partition = temp.next;\r\n            break;\r\n            }\r\n            temp = temp.next;\r\n        }\r\n\r\n        \/* if there exits no partition *\/\r\n        if(partition == null)\r\n            return list;\r\n\r\n        \/* set last element of list 1 to point to null *\/\r\n        part.next = null;\r\n\r\n        \/* Now we have two different list *\/\r\n\r\n        SinglyLinkedListNode p = list; \r\n        SinglyLinkedListNode q = partition;\r\n\r\n        SinglyLinkedListNode sorting = null;\r\n\r\n        if(p != null &amp;&amp; q != null){\r\n            if(p.value &lt; q.value){\r\n            sorting = p;\r\n            p = p.next;\r\n            }\r\n            else{\r\n            sorting = q;\r\n            q = q.next;\r\n            }\r\n        }\r\n\r\n        \/* Head of the new linked list *\/\r\n        SinglyLinkedListNode head = sorting;\r\n\r\n        while(p != null &amp;&amp; q != null){\r\n            if(p.value &lt; q.value){\r\n            sorting.next = p;\r\n            sorting = p;\r\n            p = p.next;\r\n            }\r\n            else{\r\n            sorting.next = q;\r\n            sorting = q;\r\n            q = q.next;\r\n            }\r\n        }\r\n\r\n        if(p == null) sorting.next = q;\r\n        if(q == null) sorting.next = p;\r\n\r\n        return head;\r\n    }\r\n\r\n\r\n    private static final Scanner scanner = new Scanner(System.in);\r\n\r\n    public static void main(String[] args) throws IOException {\r\n\r\n        int testCases = scanner.nextInt();\r\n        while (testCases-- &gt; 0) {\r\n            SinglyLinkedList llist = new SinglyLinkedList();\r\n            int size = scanner.nextInt();\r\n            for (int i = 0; i &lt; size; i++) {\r\n                int val = scanner.nextInt();\r\n                llist.insertNode(val);\r\n            }\r\n            SinglyLinkedListNode temp = RearrangeLists(llist.head);\r\n            printLinkedList(temp);\r\n            System.out.print(&quot;&#92;n&quot;);\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\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_2037 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_2037 a\"),jQuery(\"#tab-content_2037\"));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<br \/>\n<br \/><b>Space Complexity: <code>O(1)<\/code><\/b><\/p>\n<p>[forminator_quiz id=&#8221;2133&#8243;]<\/p>\n<p>This article tried to discuss Basic Pointer Manipulation. Hope this blog helps you understand and solve the problem. To practice more problems on Basic Pointer Manipulation you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CONCEPTS USED: Basic Pointer Manipulation DIFFICULTY LEVEL: Medium PROBLEM STATEMENT(SIMPLIFIED): Given a linked list of N nodes such that the list is sorted in two parts, the first part and second part are sorted in increasing order independently. Your task is to arrange the linked list in sorted manner. For Example: Input : 3 -&gt; [&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":[132],"tags":[],"class_list":["post-2026","post","type-post","status-publish","format-standard","hentry","category-basic-pointer-manipulation"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Arrange the List | Basic Pointer Manipulation | Prepbytes<\/title>\n<meta name=\"description\" content=\"Keep Traversing Former Two Lists Simultaneously,appending the Smaller Node Out of the Two in the New List. Increment the Pointer of Smaller Node to Point to the Next Node.\" \/>\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\/arrange-the-list\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Arrange the List | Basic Pointer Manipulation | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Keep Traversing Former Two Lists Simultaneously,appending the Smaller Node Out of the Two in the New List. Increment the Pointer of Smaller Node to Point to the Next Node.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/\" \/>\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:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-23T11:16:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.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\/arrange-the-list\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Arrange the List\",\"datePublished\":\"2020-07-01T09:51:30+00:00\",\"dateModified\":\"2022-05-23T11:16:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/\"},\"wordCount\":259,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.png\",\"articleSection\":[\"Basic Pointer Manipulation\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/\",\"name\":\"Arrange the List | Basic Pointer Manipulation | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.png\",\"datePublished\":\"2020-07-01T09:51:30+00:00\",\"dateModified\":\"2022-05-23T11:16:33+00:00\",\"description\":\"Keep Traversing Former Two Lists Simultaneously,appending the Smaller Node Out of the Two in the New List. Increment the Pointer of Smaller Node to Point to the Next Node.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Basic Pointer Manipulation\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/basic-pointer-manipulation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Arrange the List\"}]},{\"@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":"Arrange the List | Basic Pointer Manipulation | Prepbytes","description":"Keep Traversing Former Two Lists Simultaneously,appending the Smaller Node Out of the Two in the New List. Increment the Pointer of Smaller Node to Point to the Next Node.","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\/arrange-the-list\/","og_locale":"en_US","og_type":"article","og_title":"Arrange the List | Basic Pointer Manipulation | Prepbytes","og_description":"Keep Traversing Former Two Lists Simultaneously,appending the Smaller Node Out of the Two in the New List. Increment the Pointer of Smaller Node to Point to the Next Node.","og_url":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-01T09:51:30+00:00","article_modified_time":"2022-05-23T11:16:33+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.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\/arrange-the-list\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Arrange the List","datePublished":"2020-07-01T09:51:30+00:00","dateModified":"2022-05-23T11:16:33+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/"},"wordCount":259,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.png","articleSection":["Basic Pointer Manipulation"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/arrange-the-list\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/","url":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/","name":"Arrange the List | Basic Pointer Manipulation | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.png","datePublished":"2020-07-01T09:51:30+00:00","dateModified":"2022-05-23T11:16:33+00:00","description":"Keep Traversing Former Two Lists Simultaneously,appending the Smaller Node Out of the Two in the New List. Increment the Pointer of Smaller Node to Point to the Next Node.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/arrange-the-list\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645095608429-Article_255.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/arrange-the-list\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Basic Pointer Manipulation","item":"https:\/\/prepbytes.com\/blog\/category\/basic-pointer-manipulation\/"},{"@type":"ListItem","position":3,"name":"Arrange the List"}]},{"@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\/2026","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=2026"}],"version-history":[{"count":11,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2026\/revisions"}],"predecessor-version":[{"id":8179,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2026\/revisions\/8179"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=2026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=2026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=2026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}