Go | beats 100% | easy to understand | simple recursive solution
Code\n\nfunc buildTree(inorder []int, postorder []int) *TreeNode {\n\tn := len(postorder)\n\tif n == 0 {\n\t\treturn nil\n\t}\n\n\tpivotId := 0\n\tfor pivotId <
# Code\n```\nfunc buildTree(inorder []int, postorder []int) *TreeNode {\n\tn := len(postorder)\n\tif n == 0 {\n\t\treturn nil\n\t}\n\n\tpivotId := 0\n\tfor pivotId < n && inorder[pivotId] != postorder[n-1] {\n\t\tpivotId++\n\t}\n\n\troot := new(TreeNode)\n\troot.Val = postorder[n-1]\n\troot.Left = buildTree(inorder[:pivotId], postorder[:pivotId])\n\troot.Right = buildTree(inorder[pivotId+1:], postorder[pivotId:n-1])\n\treturn root\n}\n\n```
['Array', 'Divide and Conquer', 'Tree', 'Binary Tree', 'Go']