add new solutions

This commit is contained in:
kanna5 2026-01-05 16:48:03 +09:00
parent 9a10695e8c
commit ca24d0a56a
Signed by: kkyy
GPG key ID: 06332F3965E9B0CF
30 changed files with 697 additions and 16 deletions

View file

@ -0,0 +1,35 @@
package q865
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func search(node *TreeNode, depth int) (*TreeNode, int) {
if node == nil {
return nil, 0
}
if node.Left == nil && node.Right == nil {
return node, depth
}
ln, ld := search(node.Left, depth+1)
rn, rd := search(node.Right, depth+1)
switch {
case ld == rd:
return node, ld
case ld < rd:
return rn, rd
default:
return ln, ld
}
}
func subtreeWithAllDeepest(root *TreeNode) *TreeNode {
node, _ := search(root, 1)
return node
}
var _ = subtreeWithAllDeepest

View file

@ -0,0 +1,34 @@
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