题目描述
https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
思路题解
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func buildTree(preorder []int, inorder []int) *TreeNode {
if len(inorder)==1{
tree:=TreeNode{inorder[0],nil,nil}
return &tree
}
if len(inorder)==0{
return nil
}
i:=pos(inorder,preorder[0])
return &TreeNode{preorder[0],buildTree(preorder[1:1+i],inorder[:i]),
buildTree(preorder[1+i:],inorder[i+1:])}
}
func pos(s []int,value int)int{
for p,v:=range s{
if v==value{
return p
}
}
return -1
}