熱線電話:13121318867

登錄
首頁精彩閱讀Python編程求解二叉樹中和為某一值的路徑代碼示例
Python編程求解二叉樹中和為某一值的路徑代碼示例
2018-01-20
收藏

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編程求解二叉樹中和為某一值的路徑代碼示例的全部內容,希望對大家有所幫助。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢