中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何分析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

土默特左旗| 平湖市| 卢氏县| 庄浪县| 镇赉县| 出国| 喜德县| 资中县| 衡南县| 平原县| 黑河市| 嘉义市| 聂荣县| 浮梁县| 遵化市| 泌阳县| 讷河市| 巴东县| 诏安县| 宜宾市| 榆林市| 咸宁市| 务川| 星子县| 隆安县| 三原县| 黄大仙区| 青田县| 瓦房店市| 潮州市| 宜春市| 庆安县| 公主岭市| 乌鲁木齐市| 甘南县| 治多县| 盱眙县| 扎囊县| 龙江县| 景宁| 香格里拉县|