add new solutions
This commit is contained in:
parent
e1b702657c
commit
59b71480d4
11 changed files with 343 additions and 0 deletions
27
solutions/1/q100/solution.go
Normal file
27
solutions/1/q100/solution.go
Normal 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
|
||||
27
solutions/1/q101/solution.go
Normal file
27
solutions/1/q101/solution.go
Normal 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
|
||||
26
solutions/1/q112/solution.go
Normal file
26
solutions/1/q112/solution.go
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue