{"id":1777,"date":"2020-06-11T15:51:37","date_gmt":"2020-06-11T15:51:37","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1777"},"modified":"2022-03-28T01:16:18","modified_gmt":"2022-03-28T01:16:18","slug":"convert-sumtree","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/","title":{"rendered":"Convert SumTree"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png\" alt=\"\" \/><\/p>\n<h3>Concepts Used<\/h3>\n<blockquote>\n<p>DFS , Recursion<\/p>\n<\/blockquote>\n<h3>Difficulty Level<\/h3>\n<blockquote>\n<p>Medium<\/p>\n<\/blockquote>\n<h3>Problem Statement :<\/h3>\n<blockquote>\n<p>Given a binary tree and the task is to convert that tree into SumTree.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/trees\/SUMTR\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h3>Solution Approach :<\/h3>\n<h4>Introduction :<\/h4>\n<blockquote>\n<p>A SumTree is a Binary Tree where the value of a node is equal to sum of the nodes present in the left subtree and right subtree. In SumTree the leaf node values are always <code>0<\/code>.<\/p>\n<\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2020\/06\/sumtr.png\" alt=\"\" \/><\/p>\n<p><strong>Approach :<\/strong><\/p>\n<blockquote>\n<p>We can store the sum of <strong>left<\/strong> &amp; <strong>right<\/strong> subtree values in the root itselft, but this will result in the loss of the value which is currently stored in the root and we will be needing this value to update the parent node value.<br \/>\nSuppose, inorder traversal of our tree is : <code>1 ,2 ,3<\/code>, now we will store the <strong>left<\/strong> &amp; <strong>right<\/strong> subtree values (2+3) = 5 in the root node , now the root node value is <code>5<\/code> which is wrong, the correct answer would be: <code>2+3+1= 6<\/code><br \/>\nWe need to store the old value (<code>1<\/code>) somewhere before replacing the this value with the new value (<code>5<\/code>), in order to return the answer i.e sum of new and old values. (<code>5+1<\/code>)<\/p>\n<\/blockquote>\n<h3>Complexity Analysis :<\/h3>\n<blockquote>\n<p>Since we are traversing each node atmost once, the <strong>time complexity<\/strong> of this approach is <code>O(n)<\/code>.<br \/>\nConsidering the space complexity, the only space it takes is the recursion stack.<\/p>\n<\/blockquote>\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_1779 {\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_1779 .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_1779 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1779 .wpsm_nav-tabs > li.active > a, #tab_container_1779 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1779 .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_1779 .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_1779 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1779 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1779 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1779 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1779 .wpsm_nav-tabs > li > a:hover , #tab_container_1779 .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_1779 .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_1779 .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_1779 .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_1779 .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_1779 .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_1779 .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_1779 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1779 .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_1779 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1779 .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_1779 .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_1779\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1779\">\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_1779_1\" aria-controls=\"tabs_desc_1779_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_1779_2\" aria-controls=\"tabs_desc_1779_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_1779_3\" aria-controls=\"tabs_desc_1779_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_1779\">\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_1779_1\">\r\n\t\t\t\t\t\t\t\t<!-- 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\r\n#include&lt;stdlib.h&gt;\r\n\r\n#define ll long long\r\n\r\n#define REP(i, n) for (i = 0; i &lt; n; i++)\r\n\r\n\r\n\r\nstruct nodelist\r\n\r\n{\r\n\r\n    ll value;\r\n\r\n    struct nodelist *left;\r\n\r\n    struct nodelist *right;\r\n\r\n};\r\n\r\ntypedef struct nodelist node;\r\n\r\nstruct Queue\r\n\r\n{\r\n\r\n    int front, rear, size;\r\n\r\n    unsigned capacity;\r\n\r\n    node* *array;\r\n\r\n};\r\n\r\ntypedef struct Queue queue;\r\n\r\n\r\n\r\nqueue* createQueue(unsigned capacity)\r\n\r\n{\r\n\r\n    queue* qu =(queue*)malloc(sizeof(queue));\r\n\r\n    qu-&gt;capacity = capacity;\r\n\r\n    qu-&gt;front = qu-&gt;size =0;\r\n\r\n    qu-&gt;rear = capacity-1;\r\n\r\n    qu-&gt;array = (node **)malloc(qu-&gt;capacity * sizeof(node));\r\n\r\n    return qu;\r\n\r\n}\r\n\r\n\r\n\r\nint isFull(queue*  queue1)\r\n\r\n{\r\n\r\n    return (queue1-&gt;size == queue1-&gt;capacity);\r\n\r\n}\r\n\r\nint isEmpty(queue* queue1)\r\n\r\n{\r\n\r\n    return (queue1-&gt;size==0);\r\n\r\n}\r\n\r\n\r\n\r\nvoid enqueue(queue* queue1, node* item)\r\n\r\n{\r\n\r\n    if(isFull(queue1))\r\n\r\n        return ;\r\n\r\n    queue1-&gt;rear = (queue1-&gt;rear +1 )%queue1-&gt;capacity;\r\n\r\n    queue1-&gt;array[queue1-&gt;rear] = item;\r\n\r\n    queue1-&gt;size = queue1-&gt;size +1;\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\nnode dequeue(queue* queue1)\r\n\r\n{\r\n\r\n    node* item = queue1-&gt;array[queue1-&gt;front];\r\n\r\n    queue1-&gt;front = (queue1-&gt;front +1)%queue1-&gt;capacity;\r\n\r\n    queue1-&gt;size = queue1-&gt;size -1;\r\n\r\n    return *item;\r\n\r\n}\r\n\r\n\r\n\r\nnode* front(queue* queue1)\r\n\r\n{\r\n\r\n    return queue1-&gt;array[queue1-&gt;front];\r\n\r\n}\r\n\r\n\r\n\r\nnode* rear(queue * queue1)\r\n\r\n{\r\n\r\n    return queue1-&gt;array[queue1-&gt;rear];\r\n\r\n}\r\n\r\nnode *createNode(ll value)\r\n\r\n{\r\n\r\n    node *t= (node *) malloc(sizeof(node));\r\n\r\n    t-&gt;value = value;\r\n\r\n    t-&gt;right = t-&gt;left = NULL;\r\n\r\n    return  t;\r\n\r\n}\r\n\r\nvoid deleteNode(node*t)\r\n\r\n{\r\n\r\n    free(t);\r\n\r\n}\r\n\r\nvoid printLevelOrder(node *root)\r\n\r\n{\r\n\r\n    if(root==NULL)\r\n\r\n        return;\r\n\r\n    queue* queue1 = createQueue(100000);\r\n\r\n    enqueue(queue1,root);\r\n\r\n    while(!isEmpty(queue1))\r\n\r\n    {\r\n\r\n        node *t = front(queue1);\r\n\r\n        printf(\"%lld \",t-&gt;value);\r\n\r\n        dequeue(queue1);\r\n\r\n        if(t-&gt;left != NULL)\r\n\r\n            enqueue(queue1,t-&gt;left);\r\n\r\n        if(t-&gt;right !=NULL)\r\n\r\n            enqueue(queue1, t-&gt;right);\r\n\r\n    }\r\n\r\n\r\n\r\n}\r\n\r\nnode *replaceNegativeOne(node *root)\r\n\r\n{\r\n\r\n    if(root==NULL ||(root-&gt;value == -1 &amp;&amp; root-&gt;left == NULL &amp;&amp; root-&gt;right == NULL))\r\n\r\n        return NULL;\r\n\r\n    root-&gt;left = replaceNegativeOne(root-&gt;left);\r\n\r\n    root-&gt;right = replaceNegativeOne(root-&gt;right);\r\n\r\n    return root;\r\n\r\n}\r\n\r\n\r\n\r\nvoid deleteTree(node *node1)\r\n\r\n{\r\n\r\n    if(node1==NULL)\r\n\r\n        return;\r\n\r\n    deleteTree(node1-&gt;left);\r\n\r\n    deleteTree(node1-&gt;right);\r\n\r\n    free(node1);\r\n\r\n}\r\n\r\nnode *createTreeByLevelTree()\r\n\r\n{\r\n\r\n    ll n,m;\r\n\r\n    queue* queue1 = createQueue(100000);\r\n\r\n    node *root, *t;\r\n\r\n    root = NULL;\r\n\r\n    while(scanf(\"%lld\", &amp;n))\r\n\r\n    {\r\n\r\n        if(isEmpty(queue1))\r\n\r\n        {\r\n\r\n            root= createNode(n);\r\n\r\n            enqueue(queue1,root);\r\n\r\n            continue;\r\n\r\n        }\r\n\r\n        scanf(\"%lld\", &amp;m);\r\n\r\n        t = front(queue1);\r\n\r\n        dequeue(queue1);\r\n\r\n        t-&gt;left =createNode(n);\r\n\r\n        t-&gt;right=createNode(m);\r\n\r\n        if(t-&gt;left-&gt;value !=-1)\r\n\r\n            enqueue(queue1,t-&gt;left);\r\n\r\n        if(t-&gt;right-&gt;value !=-1)\r\n\r\n            enqueue(queue1,t-&gt;right);\r\n\r\n\r\n\r\n        if(isEmpty(queue1))\r\n\r\n            break;\r\n\r\n    }\r\n\r\n    return root;\r\n\r\n}\r\n\r\nint convertToSumTree(node *t)\r\n\r\n{\r\n\r\n\r\n\r\n  if(t==NULL)\r\n\r\n   return 0;\r\n\r\n\r\n\r\n  int left = convertToSumTree(t-&gt;left);\r\n\r\n  int right = convertToSumTree(t-&gt;right);\r\n\r\n\r\n\r\n  int prev = t-&gt;value;\r\n\r\n\r\n\r\n  t-&gt;value = left + right;\r\n\r\n  return t-&gt;value + prev;\r\n\r\n}\r\n\r\nint main() {\r\n\r\n\r\n\r\n        node *root = NULL;\r\n\r\n        root = createTreeByLevelTree();\r\n\r\n        root = replaceNegativeOne(root);\r\n\r\n        convertToSumTree(root);\r\n\r\n        printLevelOrder(root);\r\n\r\n        deleteTree(root);\r\n\r\n        return 0;\r\n\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_1779_2\">\r\n\t\t\t\t\t\t\t\t\r\n<!-- 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#define REP(i, n) for (i = 0; i &lt; n; i++)\r\n\r\n#define pb(a) push_back(a)\r\n\r\n#define vi vector&lt;long&gt;\r\n\r\n#define ll long long\r\n\r\n#include &lt;bits\/stdc++.h&gt;\r\n\r\nusing namespace std;\r\n\r\nstruct node\r\n\r\n{\r\n\r\n    ll value;\r\n\r\n    node *left;\r\n\r\n    node *right;\r\n\r\n};\r\n\r\n\r\n\r\nnode *createNode(ll value)\r\n\r\n{\r\n\r\n    node *t = new node();\r\n\r\n    t-&gt;value = value;\r\n\r\n    t-&gt;right = t-&gt;left = NULL;\r\n\r\n    return t;\r\n\r\n}\r\n\r\n\r\n\r\nvoid deleteNode(node *t)\r\n\r\n{\r\n\r\n    delete t;\r\n\r\n}\r\n\r\nnode *replaceNegativeOne(node *root)\r\n\r\n{\r\n\r\n    if (root == NULL || (root-&gt;value == -1 &amp;&amp; root-&gt;left == NULL &amp;&amp; root-&gt;right == NULL))\r\n\r\n        return NULL;\r\n\r\n    root-&gt;left = replaceNegativeOne(root-&gt;left);\r\n\r\n    root-&gt;right = replaceNegativeOne(root-&gt;right);\r\n\r\n    return root;\r\n\r\n}\r\n\r\nvoid printLevelOrder(node *root)\r\n\r\n{\r\n\r\n    if (root == NULL)\r\n\r\n        return;\r\n\r\n\r\n\r\n    queue&lt;node *&gt; q;\r\n\r\n    q.push(root);\r\n\r\n    while (!q.empty())\r\n\r\n    {\r\n\r\n        node *t = q.front();\r\n\r\n        cout &lt;&lt; t-&gt;value &lt;&lt; \" \";\r\n\r\n        q.pop();\r\n\r\n\r\n\r\n        if (t-&gt;left != NULL)\r\n\r\n            q.push(t-&gt;left);\r\n\r\n\r\n\r\n        if (t-&gt;right != NULL)\r\n\r\n            q.push(t-&gt;right);\r\n\r\n    }\r\n\r\n}\r\n\r\nnode *createTreeByLevelTree()\r\n\r\n{\r\n\r\n    ll n, m;\r\n\r\n    queue&lt;node *&gt; q;\r\n\r\n\r\n\r\n    node *root, *t;\r\n\r\n\r\n\r\n    root = NULL;\r\n\r\n\r\n\r\n    while (cin &gt;&gt; n)\r\n\r\n    {\r\n\r\n        if (q.empty())\r\n\r\n        {\r\n\r\n            root = createNode(n);\r\n\r\n            q.push(root);\r\n\r\n            continue;\r\n\r\n        }\r\n\r\n        cin &gt;&gt; m;\r\n\r\n\r\n\r\n        t = q.front();\r\n\r\n        q.pop();\r\n\r\n\r\n\r\n        t-&gt;left = createNode(n);\r\n\r\n        t-&gt;right = createNode(m);\r\n\r\n\r\n\r\n        if (t-&gt;left-&gt;value != -1)\r\n\r\n        {\r\n\r\n            q.push(t-&gt;left);\r\n\r\n        }\r\n\r\n\r\n\r\n        if (t-&gt;right-&gt;value != -1)\r\n\r\n        {\r\n\r\n            q.push(t-&gt;right);\r\n\r\n        }\r\n\r\n         if (q.empty())\r\n\r\n        {\r\n\r\n            break;\r\n\r\n        }\r\n\r\n    }\r\n\r\n\r\n\r\n    return root;\r\n\r\n}\r\n\r\n\r\n\r\nvoid deleteTree(node *node)\r\n\r\n{\r\n\r\n    if (node == NULL)\r\n\r\n        return;\r\n\r\n\r\n\r\n    deleteTree(node-&gt;left);\r\n\r\n    deleteTree(node-&gt;right);\r\n\r\n    delete node;\r\n\r\n}\r\n\r\n\r\n\r\nint convertToSumTree(node *root)\r\n{\r\n  if(root==NULL)\r\n   return 0;\r\n  int left = convertToSumTree(root-&gt;left);\r\n  int right = convertToSumTree(root-&gt;right);\r\n\r\n\r\n  int prev = root-&gt;value;\r\n  root-&gt;value = left + right;\r\n\r\n  return root-&gt;value + prev;\r\n}\r\n\r\n\r\nint main()\r\n\r\n{\r\n\r\n    node *root = NULL;\r\n\r\n    root = createTreeByLevelTree();\r\n\r\n    root = replaceNegativeOne(root);\r\n\r\n    convertToSumTree(root);\r\n\r\n    printLevelOrder(root);\r\n\r\n    deleteTree(root);\r\n\r\n    return 0;\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_1779_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.util.LinkedList;\r\n\r\nimport java.util.*;\r\n\r\nimport java.util.Scanner;\r\n\r\nimport java.io.*;\r\n\r\n\r\n\r\nclass Node\r\n\r\n{\r\n\r\n    long value;\r\n\r\n    Node left, right;\r\n\r\n\r\n\r\n    public Node(long item)\r\n\r\n    {\r\n\r\n        value = item;\r\n\r\n        left = right = null;\r\n\r\n    }\r\n\r\n}\r\n\r\nclass BinaryTree {\r\n\r\n    Node root;\r\n\r\n\r\n\r\n    BinaryTree() {\r\n\r\n        root = null;\r\n\r\n    }\r\n\r\n\r\n\r\n    Node createNode(long value) {\r\n\r\n        Node t = new Node(value);\r\n\r\n        return t;\r\n\r\n    }\r\n\r\n\r\n\r\n    Node replaceNegativeOne(Node root) {\r\n\r\n        if (root == null || (root.value == -1 &amp;&amp; root.left == null &amp;&amp; root.right == null)) {\r\n\r\n            return null;\r\n\r\n        }\r\n\r\n        root.left = replaceNegativeOne(root.left);\r\n\r\n        root.right = replaceNegativeOne(root.right);\r\n\r\n        return root;\r\n\r\n    }\r\n\r\n    public void printLevelOrder(Node root)\r\n\r\n    {\r\n\r\n        if(root==null)\r\n\r\n        {\r\n\r\n            return;\r\n\r\n        }\r\n\r\n        Queue&lt;Node&gt; nodes = new LinkedList&lt;&gt;();\r\n\r\n        nodes.add(root);\r\n\r\n        while(!nodes.isEmpty())\r\n\r\n        {\r\n\r\n            Node node = nodes.remove();\r\n\r\n            System.out.print(node.value+\" \");\r\n\r\n            if(node.left!=null)\r\n\r\n            {\r\n\r\n                nodes.add(node.left);\r\n\r\n            }\r\n\r\n            if(node.right!=null)\r\n\r\n            {\r\n\r\n                nodes.add(node.right);\r\n\r\n            }\r\n\r\n        }\r\n\r\n    }\r\n\r\n\r\n\r\n    Node createTreeByLevelTree() {\r\n\r\n        Scanner sc = new Scanner(System.in);\r\n\r\n        long n, m;\r\n\r\n        Queue&lt;Node&gt; queue = new LinkedList&lt;&gt;();\r\n\r\n        Node t;\r\n\r\n        root = null;\r\n\r\n        while (sc.hasNext()) {\r\n\r\n            n = sc.nextLong();\r\n\r\n            if (queue.isEmpty()) {\r\n\r\n                root = createNode(n);\r\n\r\n                ((LinkedList&lt;Node&gt;) queue).add(root);\r\n\r\n                continue;\r\n\r\n            }\r\n\r\n            m = sc.nextLong();\r\n\r\n            t = ((LinkedList&lt;Node&gt;) queue).peekFirst();\r\n\r\n            ((LinkedList&lt;Node&gt;) queue).pop();\r\n\r\n            t.left = createNode(n);\r\n\r\n            t.right = createNode(m);\r\n\r\n            if (t.left.value != -1)\r\n\r\n                ((LinkedList&lt;Node&gt;) queue).add(t.left);\r\n\r\n            if (t.right.value != -1)\r\n\r\n                ((LinkedList&lt;Node&gt;) queue).add(t.right);\r\n\r\n            if (queue.isEmpty())\r\n\r\n                break;\r\n\r\n        }\r\n\r\n        return root;\r\n\r\n    }\r\n\r\n\r\n\r\n    void deleteTree(Node node) {\r\n\r\n        node = null;\r\n\r\n    }\r\n\r\nlong convertToSumTree(Node node) {\r\n\r\n   if(node==null)\r\n\r\n    return 0;\r\n\r\n\r\n\r\n   long left = convertToSumTree(node.left);\r\n\r\n   long right = convertToSumTree(node.right);\r\n\r\n\r\n\r\n   long prev = node.value;\r\n\r\n   node.value = left+right;\r\n\r\n\r\n\r\n   return node.value + prev;\r\n\r\n}\r\n\r\n\r\n\r\n\r\n}\r\n\r\npublic class Main {\r\n\r\n\r\n\r\n    public static void main(String[] args) {\r\n\r\n        \/\/ write your code here\r\n\r\n        BinaryTree bt = new BinaryTree();\r\n\r\n        bt.root = bt.createTreeByLevelTree();\r\n\r\n        bt.root = bt.replaceNegativeOne(bt.root);\r\n\r\n        bt.convertToSumTree(bt.root);\r\n\r\n        bt.printLevelOrder(bt.root);\r\n\r\n        bt.deleteTree(bt.root);\r\n\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_1779 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_1779 a\"),jQuery(\"#tab-content_1779\"));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[forminator_quiz id=&quot;1780&quot;]<\/p>\n<p>This article tried to discuss <strong>DFS , Recursion<\/strong>. Hope this blog helps you understand and solve the problem. To practice more problems on DFS , Recursion you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Concepts Used DFS , Recursion Difficulty Level Medium Problem Statement : Given a binary tree and the task is to convert that tree into SumTree. Solution Approach : Introduction : A SumTree is a Binary Tree where the value of a node is equal to sum of the nodes present in the left subtree and [&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":[112],"tags":[],"class_list":["post-1777","post","type-post","status-publish","format-standard","hentry","category-trees-interview-questions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Trees Interview Questions | Convert Sumtree | Prepbytes<\/title>\n<meta name=\"description\" content=\"A Sumtree Is a Binary Tree Where the Value of a Node Is Equal to Sum of the Nodes Present in the Left Subtree and Right Subtree. in Sumtree the Leaf Node Values Are Always 0.\" \/>\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\/convert-sumtree\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trees Interview Questions | Convert Sumtree | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"A Sumtree Is a Binary Tree Where the Value of a Node Is Equal to Sum of the Nodes Present in the Left Subtree and Right Subtree. in Sumtree the Leaf Node Values Are Always 0.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/\" \/>\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-06-11T15:51:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-28T01:16:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Convert SumTree\",\"datePublished\":\"2020-06-11T15:51:37+00:00\",\"dateModified\":\"2022-03-28T01:16:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/\"},\"wordCount\":242,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png\",\"articleSection\":[\"Trees Interview Questions\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/\",\"name\":\"Trees Interview Questions | Convert Sumtree | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png\",\"datePublished\":\"2020-06-11T15:51:37+00:00\",\"dateModified\":\"2022-03-28T01:16:18+00:00\",\"description\":\"A Sumtree Is a Binary Tree Where the Value of a Node Is Equal to Sum of the Nodes Present in the Left Subtree and Right Subtree. in Sumtree the Leaf Node Values Are Always 0.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trees Interview Questions\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/trees-interview-questions\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Convert SumTree\"}]},{\"@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":"Trees Interview Questions | Convert Sumtree | Prepbytes","description":"A Sumtree Is a Binary Tree Where the Value of a Node Is Equal to Sum of the Nodes Present in the Left Subtree and Right Subtree. in Sumtree the Leaf Node Values Are Always 0.","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\/convert-sumtree\/","og_locale":"en_US","og_type":"article","og_title":"Trees Interview Questions | Convert Sumtree | Prepbytes","og_description":"A Sumtree Is a Binary Tree Where the Value of a Node Is Equal to Sum of the Nodes Present in the Left Subtree and Right Subtree. in Sumtree the Leaf Node Values Are Always 0.","og_url":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-06-11T15:51:37+00:00","article_modified_time":"2022-03-28T01:16:18+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Convert SumTree","datePublished":"2020-06-11T15:51:37+00:00","dateModified":"2022-03-28T01:16:18+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/"},"wordCount":242,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png","articleSection":["Trees Interview Questions"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/convert-sumtree\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/","url":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/","name":"Trees Interview Questions | Convert Sumtree | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png","datePublished":"2020-06-11T15:51:37+00:00","dateModified":"2022-03-28T01:16:18+00:00","description":"A Sumtree Is a Binary Tree Where the Value of a Node Is Equal to Sum of the Nodes Present in the Left Subtree and Right Subtree. in Sumtree the Leaf Node Values Are Always 0.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/convert-sumtree\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097608725-Article_292.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/convert-sumtree\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Trees Interview Questions","item":"https:\/\/prepbytes.com\/blog\/category\/trees-interview-questions\/"},{"@type":"ListItem","position":3,"name":"Convert SumTree"}]},{"@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\/1777","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=1777"}],"version-history":[{"count":7,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1777\/revisions"}],"predecessor-version":[{"id":8267,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1777\/revisions\/8267"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}