34 lines
571 B
Go
34 lines
571 B
Go
package q872
|
|
|
|
import "slices"
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
func leafSeq(node *TreeNode, cache []int) []int {
|
|
if cache == nil {
|
|
cache = []int{}
|
|
}
|
|
leaf := true
|
|
if node.Left != nil {
|
|
leaf = false
|
|
cache = leafSeq(node.Left, cache)
|
|
}
|
|
if node.Right != nil {
|
|
leaf = false
|
|
cache = leafSeq(node.Right, cache)
|
|
}
|
|
if leaf {
|
|
cache = append(cache, node.Val)
|
|
}
|
|
return cache
|
|
}
|
|
|
|
func leafSimilar(root1 *TreeNode, root2 *TreeNode) bool {
|
|
return slices.Equal(leafSeq(root1, nil), leafSeq(root2, nil))
|
|
}
|
|
|
|
var _ = leafSimilar
|