Leetcode Note: Go - Path Sum
Path Sum - LeetCode
https://leetcode.com/problems/path-sum/
- Go 言語で取り組んだメモ
所感
- わからん
実装準備
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func hasPathSum(root *TreeNode, targetSum int) bool {
}
回答
20ms simple Golang solution - LeetCode Discuss
https://leetcode.com/problems/path-sum/discuss/36492/20ms-simple-Golang-solution
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func hasPathSum(root *TreeNode, sum int) bool {
if root == nil {
return false
}
if root.Left == nil && root.Right == nil {
return root.Val == sum
}
return hasPathSum(root.Left, sum-root.Val) || hasPathSum(root.Right, sum-root.Val)
}
- root の nil チェック
- left と right が nil なら val を sum とする
- hasPathSum を再帰呼び出し
- left と sum - root.val
- right と sum - root.val
- どちらか一方でも true を return すれば OK