91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析python二叉樹中和為某一值的路徑

發布時間:2021-12-13 15:28:34 來源:億速云 閱讀:124 作者:柒染 欄目:大數據

這篇文章給大家介紹如何分析python二叉樹中和為某一值的路徑,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

輸入一棵二叉樹和一個整數,打印出二叉樹中節點值的和為輸入整數的所有路徑。從樹的根節點開始往下一直到葉節點所經過的節點形成一條路徑。

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

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

返回:

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

提示:

  1. 節點總數 <= 10000

注意:本題與主站 113 題相同:https://leetcode-cn.com/problems/path-sum-ii/

解題思路:

1,此題只是,先序遍歷的一個變形

2,遞歸執行,深度優先遍歷,這個時候sum變為sum-root.Val

3,到達葉子節點的時候,判斷sum==root.Val,是則將整個鏈路加入結果里,否則,繼續遍歷

4,需要注意一點了,go的slice傳遞的是值,但是數據引用的是同一份

5,copy的時候需要先make分配空間,否則copy不成功

代碼實現

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func pathSum(root *TreeNode, sum int) [][]int {   var p[]int   var r [][]int
  r=dfs(root,sum,p,r)   return r}
func dfs(root *TreeNode, sum int,path []int,ret [][]int)[][]int{    if root==nil {       return ret    }    path=append(path,root.Val)    if root.Left==nil && root.Right==nil {         if sum==root.Val{              p:=make([]int,len(path))             copy(p,path)         ret=append(ret,p)        fmt.Println(1,":",path,p,sum,root,ret)         }        return ret    }    if root.Left==nil{        return dfs(root.Right,sum-root.Val,path,ret)    }
   if root.Right==nil{        return dfs(root.Left,sum-root.Val,path,ret)    }    l:=dfs(root.Left,sum-root.Val,path,ret)    r:=dfs(root.Right,sum-root.Val,path,ret)    fmt.Println(ret,l,r)    ret=append(ret,l...)    ret=append(ret,r...)    return ret}

關于如何分析python二叉樹中和為某一值的路徑就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中西区| 垦利县| 松滋市| 巨野县| 安岳县| 寿宁县| 柏乡县| 兴文县| 滨海县| 柯坪县| 确山县| 克什克腾旗| 方山县| 新兴县| 江华| 分宜县| 海口市| 泾川县| 兴国县| 湛江市| 六枝特区| 鹰潭市| 柘城县| 韶关市| 罗田县| 汤阴县| 宜黄县| 余江县| 阿拉善左旗| 环江| 潼关县| 新乡县| 北京市| 麦盖提县| 张掖市| 博白县| 东光县| 曲靖市| 高平市| 从化市| 重庆市|