add new solutions

This commit is contained in:
Yiyang Kang 2025-12-28 17:07:06 +09:00 committed by kanna5
parent e1b702657c
commit 59b71480d4
Signed by: kkyy
GPG key ID: 06332F3965E9B0CF
11 changed files with 343 additions and 0 deletions

View file

@ -0,0 +1,27 @@
package q100
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func traverse(p, q *TreeNode) bool {
if p == nil && q == nil {
return true
}
if p == nil || q == nil {
return false
}
if p.Val != q.Val {
return false
}
return traverse(p.Left, q.Left) &&
traverse(p.Right, q.Right)
}
func isSameTree(p *TreeNode, q *TreeNode) bool {
return traverse(p, q)
}
var _ = isSameTree

View file

@ -0,0 +1,27 @@
package q101
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func traverse(left, right *TreeNode) bool {
if left == nil && right == nil {
return true
}
if left == nil || right == nil {
return false
}
if left.Val != right.Val {
return false
}
return traverse(left.Left, right.Right) &&
traverse(left.Right, right.Left)
}
func isSymmetric(root *TreeNode) bool {
return traverse(root.Left, root.Right)
}
var _ = isSymmetric

View file

@ -0,0 +1,26 @@
package q112
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func traverse(node *TreeNode, tgtSum, curSum int) bool {
if node == nil {
return false
}
sum := curSum + node.Val
if node.Left == nil && node.Right == nil && sum == tgtSum {
return true
}
return traverse(node.Left, tgtSum, sum) ||
traverse(node.Right, tgtSum, sum)
}
func hasPathSum(root *TreeNode, targetSum int) bool {
return traverse(root, targetSum, 0)
}
var _ = hasPathSum