package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param inorder int整型一维数组 中序遍历序列 * @param postorder int整型一维数组 后序遍历序列 * @return TreeNode类 */ func buildTree( inorder []int , postorder []int ) *TreeNode { // write code here if len(inorder) == 0 { return nil } pos := find(inorder,postorder[len(postorder)-1]) return &TreeNode{ Val: postorder[len(postorder)-1], Left: buildTree(inorder[:pos],postorder[:pos]), Right: buildTree(inorder[pos+1:],postorder[pos:len(postorder)-1]), } } func find(nums []int,target int) int { for i,num := range nums { if num == target { return i } } return -1 }