{"id":8029,"date":"2024-03-14T07:27:43","date_gmt":"2024-03-14T07:27:43","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/"},"modified":"2025-08-02T23:45:57","modified_gmt":"2025-08-02T23:45:57","slug":"how-can-we-convert-a-list-into-a-tree-structure-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/","title":{"rendered":"Java List to Tree: Convert with Code Example"},"content":{"rendered":"<p>In Java, we can convert a List into a tree structure by creating tree node objects. Here is an example code:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> java.util.ArrayList;\r\n<span class=\"hljs-keyword\">import<\/span> java.util.HashMap;\r\n<span class=\"hljs-keyword\">import<\/span> java.util.List;\r\n<span class=\"hljs-keyword\">import<\/span> java.util.Map;\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">TreeNode<\/span> {\r\n    <span class=\"hljs-type\">int<\/span> val;\r\n    List&lt;TreeNode&gt; children;\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title function_\">TreeNode<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span> val)<\/span> {\r\n        <span class=\"hljs-built_in\">this<\/span>.val = val;\r\n        <span class=\"hljs-built_in\">this<\/span>.children = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;();\r\n    }\r\n}\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">ListToTree<\/span> {\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> TreeNode <span class=\"hljs-title function_\">listToTree<\/span><span class=\"hljs-params\">(List&lt;Integer&gt; list)<\/span> {\r\n        Map&lt;Integer, TreeNode&gt; map = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">HashMap<\/span>&lt;&gt;();\r\n        <span class=\"hljs-type\">TreeNode<\/span> <span class=\"hljs-variable\">root<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-literal\">null<\/span>;\r\n\r\n        <span class=\"hljs-keyword\">for<\/span> (Integer val : list) {\r\n            <span class=\"hljs-type\">TreeNode<\/span> <span class=\"hljs-variable\">node<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">TreeNode<\/span>(val);\r\n            map.put(val, node);\r\n        }\r\n\r\n        <span class=\"hljs-keyword\">for<\/span> (Integer val : list) {\r\n            <span class=\"hljs-type\">TreeNode<\/span> <span class=\"hljs-variable\">node<\/span> <span class=\"hljs-operator\">=<\/span> map.get(val);\r\n            <span class=\"hljs-keyword\">if<\/span> (val == <span class=\"hljs-number\">0<\/span>) {\r\n                root = node;\r\n            } <span class=\"hljs-keyword\">else<\/span> {\r\n                <span class=\"hljs-type\">TreeNode<\/span> <span class=\"hljs-variable\">parent<\/span> <span class=\"hljs-operator\">=<\/span> map.get((val - <span class=\"hljs-number\">1<\/span>) \/ <span class=\"hljs-number\">2<\/span>);\r\n                parent.children.add(node);\r\n            }\r\n        }\r\n\r\n        <span class=\"hljs-keyword\">return<\/span> root;\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> {\r\n        List&lt;Integer&gt; list = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;();\r\n        list.add(<span class=\"hljs-number\">0<\/span>);\r\n        list.add(<span class=\"hljs-number\">1<\/span>);\r\n        list.add(<span class=\"hljs-number\">2<\/span>);\r\n        list.add(<span class=\"hljs-number\">3<\/span>);\r\n        list.add(<span class=\"hljs-number\">4<\/span>);\r\n        list.add(<span class=\"hljs-number\">5<\/span>);\r\n\r\n        <span class=\"hljs-type\">TreeNode<\/span> <span class=\"hljs-variable\">root<\/span> <span class=\"hljs-operator\">=<\/span> listToTree(list);\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In this code snippet, we first create a TreeNode class to represent tree node objects, with the attributes of node value and a list of child nodes. Next, we iterate through a given List to create tree node objects and store them in a Map, where the key is the node value and the value is the node object. Then, we iterate through the List again to build the tree structure based on the relationships between node values, and return the root node. Finally, by calling the listToTree method, we can convert a List into a tree structure and retrieve the root node.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java, we can convert a List into a tree structure by creating tree node objects. Here is an example code: import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; class TreeNode { int val; List&lt;TreeNode&gt; children; public TreeNode(int val) { this.val = val; this.children = new ArrayList&lt;&gt;(); } } public class ListToTree { public static [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[224,87,346,299,10559],"class_list":["post-8029","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-data-structures","tag-java","tag-list","tag-programming","tag-tree"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java List to Tree: Convert with Code Example - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to convert a list into a tree structure in Java with code examples. Step-by-step guide for tree node creation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java List to Tree: Convert with Code Example\" \/>\n<meta property=\"og:description\" content=\"Learn how to convert a list into a tree structure in Java with code examples. Step-by-step guide for tree node creation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T07:27:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-02T23:45:57+00:00\" \/>\n<meta name=\"author\" content=\"Liam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Liam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/\"},\"author\":{\"name\":\"Liam\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\"},\"headline\":\"Java List to Tree: Convert with Code Example\",\"datePublished\":\"2024-03-14T07:27:43+00:00\",\"dateModified\":\"2025-08-02T23:45:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/\"},\"wordCount\":132,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"data structures\",\"Java\",\"List\",\"programming\",\"Tree\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/\",\"name\":\"Java List to Tree: Convert with Code Example - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T07:27:43+00:00\",\"dateModified\":\"2025-08-02T23:45:57+00:00\",\"description\":\"Learn how to convert a list into a tree structure in Java with code examples. Step-by-step guide for tree node creation.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java List to Tree: Convert with Code Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\",\"name\":\"Liam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"caption\":\"Liam\"},\"sameAs\":[\"http:\/\/Wilson\"],\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Java List to Tree: Convert with Code Example - Blog - Silicon Cloud","description":"Learn how to convert a list into a tree structure in Java with code examples. Step-by-step guide for tree node creation.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/","og_locale":"en_US","og_type":"article","og_title":"Java List to Tree: Convert with Code Example","og_description":"Learn how to convert a list into a tree structure in Java with code examples. Step-by-step guide for tree node creation.","og_url":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T07:27:43+00:00","article_modified_time":"2025-08-02T23:45:57+00:00","author":"Liam","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Liam","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/"},"author":{"name":"Liam","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671"},"headline":"Java List to Tree: Convert with Code Example","datePublished":"2024-03-14T07:27:43+00:00","dateModified":"2025-08-02T23:45:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/"},"wordCount":132,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["data structures","Java","List","programming","Tree"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/","name":"Java List to Tree: Convert with Code Example - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T07:27:43+00:00","dateModified":"2025-08-02T23:45:57+00:00","description":"Learn how to convert a list into a tree structure in Java with code examples. Step-by-step guide for tree node creation.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-can-we-convert-a-list-into-a-tree-structure-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Java List to Tree: Convert with Code Example"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671","name":"Liam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","caption":"Liam"},"sameAs":["http:\/\/Wilson"],"url":"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=8029"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8029\/revisions"}],"predecessor-version":[{"id":152826,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8029\/revisions\/152826"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=8029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=8029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=8029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}