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

溫馨提示×

溫馨提示×

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

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

Python中如何求解二叉樹中和為某一值的路徑

發布時間:2021-08-03 11:09:31 來源:億速云 閱讀:127 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Python中如何求解二叉樹中和為某一值的路徑的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

題目描述

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

思路:首先要理解題意,是從根節點往子節點連。

1、如果只有根節點或者找到葉子節點,我們就把其對應的val值返回

2、如果不是葉子節點,我們分別對根節點的左子樹、右子樹進行遞歸,直到找到葉子結點。然后遍歷把葉子結點和父節點對應的val組成的序列返回上一層;如果沒找到路徑,其實也返回了序列,只不過是[]

代碼如下:

# -*- coding:utf-8 -*- 
class TreeNode(): 
  def __init__(self,x): 
    self.val = x 
    self.left = None 
    self.right = None 
 
def function(root,target_number): 
  result = [] 
  if not root: 
    return result 
#  如果只有根節點或者找到葉子節點,我們就把其值返回 
  if not root.left and not root.right and root.val == target_number: 
    return [[root.val]] 
  else: 
#  如果不是葉子節點,我們分別對根節點的左子樹、右子樹進行遞歸,注意修改變量: 
    left = function(root.left,target_number - root.val) 
    right = function(root.right,target_number - root.val) 
    for item in left+right: 
      result.append([root.val]+item) 
    return result

感謝各位的閱讀!關于“Python中如何求解二叉樹中和為某一值的路徑”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

西乡县| 县级市| 柞水县| 颍上县| 连平县| 上蔡县| 洮南市| 珠海市| 磴口县| 石景山区| 弥渡县| 柘城县| 乐昌市| 博湖县| 华蓥市| 承德县| 浮梁县| 德庆县| 元江| 奉贤区| 双流县| 社会| 太谷县| 邵东县| 瓮安县| 遂宁市| 泾川县| 手机| 渭源县| 罗江县| 广汉市| 沂源县| 洞头县| 内丘县| 连州市| 阿城市| 墨竹工卡县| 柳河县| 文昌市| 松溪县| 墨脱县|