欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python編程求解二叉樹中和為某一值的路徑代碼示例

 更新時(shí)間:2018年01月04日 15:20:10   作者:明柳夢少  
這篇文章主要介紹了Python編程求解二叉樹中和為某一值的路徑代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下

題目描述

輸入一顆二叉樹和一個(gè)整數(shù),打印出二叉樹中結(jié)點(diǎn)值的和為輸入整數(shù)的所有路徑。路徑定義為從樹的根結(jié)點(diǎn)開始往下一直到葉結(jié)點(diǎn)所經(jīng)過的結(jié)點(diǎn)形成一條路徑。

思路:首先要理解題意,是從根節(jié)點(diǎn)往子節(jié)點(diǎn)連。

1、如果只有根節(jié)點(diǎn)或者找到葉子節(jié)點(diǎn),我們就把其對應(yīng)的val值返回

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

代碼如下:

# -*- 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 
#  如果只有根節(jié)點(diǎn)或者找到葉子節(jié)點(diǎn),我們就把其值返回 
  if not root.left and not root.right and root.val == target_number: 
    return [[root.val]] 
  else: 
#  如果不是葉子節(jié)點(diǎn),我們分別對根節(jié)點(diǎn)的左子樹、右子樹進(jìn)行遞歸,注意修改變量: 
    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 

總結(jié)

以上就是本文關(guān)于Python編程求解二叉樹中和為某一值的路徑代碼示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

Python探索之創(chuàng)建二叉樹

Python算法之求n個(gè)節(jié)點(diǎn)不同二叉樹個(gè)數(shù)

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Pandas 按索引合并數(shù)據(jù)集的方法

    Pandas 按索引合并數(shù)據(jù)集的方法

    今天小編就為大家分享一篇Pandas 按索引合并數(shù)據(jù)集的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python3發(fā)送request請求及查看返回結(jié)果實(shí)例

    python3發(fā)送request請求及查看返回結(jié)果實(shí)例

    這篇文章主要介紹了python3發(fā)送request請求及查看返回結(jié)果實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 使用systemd部署服務(wù)的過程解析

    使用systemd部署服務(wù)的過程解析

    這篇文章主要介紹了使用systemd部署服務(wù)的過程解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • python實(shí)例方法的使用注意及代碼實(shí)例

    python實(shí)例方法的使用注意及代碼實(shí)例

    在本篇文章里小編給大家總結(jié)的是關(guān)于python實(shí)例方法的使用注意及代碼實(shí)例內(nèi)容,對此有興趣的朋友們可以參考下。
    2022-11-11
  • 詳解程序意外中斷自動(dòng)重啟shell腳本(以Python為例)

    詳解程序意外中斷自動(dòng)重啟shell腳本(以Python為例)

    這篇文章主要介紹了詳解程序意外中斷自動(dòng)重啟shell腳本(以Python為例),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • opencv實(shí)踐項(xiàng)目之圖像拼接詳細(xì)步驟

    opencv實(shí)踐項(xiàng)目之圖像拼接詳細(xì)步驟

    OpenCV的應(yīng)用領(lǐng)域非常廣泛,包括圖像拼接、圖像降噪、產(chǎn)品質(zhì)檢、人機(jī)交互、人臉識(shí)別、動(dòng)作識(shí)別、動(dòng)作跟蹤、無人駕駛等,下面這篇文章主要給大家介紹了關(guān)于opencv實(shí)踐項(xiàng)目之圖像拼接的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • 啟動(dòng)targetcli時(shí)遇到錯(cuò)誤解決辦法

    啟動(dòng)targetcli時(shí)遇到錯(cuò)誤解決辦法

    這篇文章主要介紹了啟動(dòng)targetcli時(shí)遇到錯(cuò)誤解決辦法的相關(guān)資料,希望通過本文能幫助到大家,讓大家遇到這樣的錯(cuò)誤解決,需要的朋友可以參考下
    2017-10-10
  • 詳解model.train()和model.eval()兩種模式的原理與用法

    詳解model.train()和model.eval()兩種模式的原理與用法

    這篇文章主要介紹了詳解model.train()和model.eval()兩種模式的原理與用法,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,那么看完這篇文章一定會(huì)對你有所幫助
    2023-03-03
  • Python 常用的安裝Module方式匯總

    Python 常用的安裝Module方式匯總

    這篇文章主要介紹了Python 常用的安裝Module方式匯總,需要的朋友可以參考下
    2017-05-05
  • Python優(yōu)化代碼的技巧分享

    Python優(yōu)化代碼的技巧分享

    Python?是?一種用著很爽的語言,Python也有著很多特性和技巧,可以幫助我們編寫更高效、更優(yōu)雅、更易維護(hù)的代碼,下面小編為大家整理了一些常用的Python代碼優(yōu)化的簡單小技巧,希望對大家有所幫助
    2023-09-09

最新評論