日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode(合集) 路径总和(二叉树) golang copy的值复制

發布時間:2023/11/30 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode(合集) 路径总和(二叉树) golang copy的值复制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

112. 路徑總和

給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等于目標和。

說明: 葉子節點是指沒有子節點的節點。

示例:
給定如下二叉樹,以及目標和 sum = 22,

5/ \4 8/ / \11 13 4/ \ \7 2 1

返回 true, 因為存在目標和為 22 的根節點到葉子節點的路徑 5->4->11->2。

Code

func hasPathSum(root *TreeNode, sum int) bool {if root == nil {return false}if root.Val == sum && root.Left == nil && root.Right == nil{return true}return hasPathSum(root.Left, sum-root.Val) || hasPathSum(root.Right, sum-root.Val) }

113. 路徑總和 II

給定一個二叉樹和一個目標和,找到所有從根節點到葉子節點路徑總和等于給定目標和的路徑。

說明: 葉子節點是指沒有子節點的節點。

示例:
給定如下二叉樹,以及目標和 sum = 22,

5/ \4 8/ / \11 13 4/ \ / \7 2 5 1

返回:

[
[5,4,11,2],
[5,8,4,5]
]

Code

var res [][]int func pathSum(root *TreeNode, sum int) [][]int {res = [][]int{}dfs(root, sum, []int{})return res }func dfs(root *TreeNode, sum int, stack []int) {if root == nil {return}stack = append(stack, root.Val)if root.Left == nil && root.Right == nil {if sum == root.Val {r := make([]int, len(stack))copy(r, stack)res = append(res, r)}}dfs(root.Left, sum-root.Val, stack)dfs(root.Right, sum-root.Val, stack) }

437. 路徑總和 III

給定一個二叉樹,它的每個結點都存放著一個整數值。

找出路徑和等于給定數值的路徑總數。

路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的(只能從父節點到子節點)。

二叉樹不超過1000個節點,且節點數值范圍是 [-1000000,1000000] 的整數。

示例:

root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8

10/ \5 -3/ \ \3 2 11/ \ \ 3 -2 1

返回 3。和等于 8 的路徑有:

1. 5 -> 3 2. 5 -> 2 -> 1 3. -3 -> 11

Code

func pathFrom(root *TreeNode, sum int) int {if root == nil { return 0 }cnt := 0 if root.Val == sum { cnt++ }cnt += pathFrom(root.Left, sum-root.Val)cnt += pathFrom(root.Right, sum-root.Val)return cnt }func pathSum(root *TreeNode, sum int) int {if root == nil { return 0 }return pathFrom(root, sum) + pathSum(root.Left, sum) + pathSum(root.Right, sum) }

總結

以上是生活随笔為你收集整理的LeetCode(合集) 路径总和(二叉树) golang copy的值复制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。