26 lines
454 B
Go
26 lines
454 B
Go
package q106
|
|
|
|
import "slices"
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
func buildTree(inorder []int, postorder []int) *TreeNode {
|
|
if len(inorder) == 0 {
|
|
return nil
|
|
}
|
|
|
|
val := postorder[len(postorder)-1]
|
|
pos := slices.Index(inorder, val)
|
|
|
|
return &TreeNode{
|
|
Val: val,
|
|
Left: buildTree(inorder[0:pos], postorder[:pos]),
|
|
Right: buildTree(inorder[pos+1:], postorder[pos:len(postorder)-1]),
|
|
}
|
|
}
|
|
|
|
var _ = buildTree
|