lc-go/solutions/2/q236/solution.go
2026-01-17 12:51:40 +09:00

31 lines
481 B
Go

package q236
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {
if root == nil {
return nil
}
if root == p || root == q {
return root
}
l := lowestCommonAncestor(root.Left, p, q)
r := lowestCommonAncestor(root.Right, p, q)
switch {
case l == nil && r == nil:
return nil
case l != nil && r != nil:
return root
case l != nil:
return l
}
return r
}
var _ = lowestCommonAncestor