劍指offer 二叉樹中和為某乙個值的路徑

2021-09-22 02:43:35 字數 1179 閱讀 9233

題目描述:輸入一顆二叉樹的跟節點和乙個整數expectnumber,列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(注意: 在返回值的list中,陣列長度大的陣列靠前)

思路:此題需要注意的地方是題目所求路徑應該是從根結點開始到葉子結點。

定義陣列onepath存放當前遍歷的路徑,定義patharray陣列存放所有符合條件的路徑

每遍歷乙個結點,就將其加入onepath中,並將expectnumber減去這個結點值賦給expectnumber,判定是否符合條件

1.若當前結點為葉子結點且expectnumber等於0,則將該陣列放入patharray中,並換其他路徑繼續搜尋

2.若expectnumber大於0,則向當前結點的左右子樹依次優先搜尋

3.若expectnumber小於0,則直接換路搜尋

# -*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution:

# 返回二維列表,內部每個列表表示找到的路徑

def __init__(self):

self.onepath = #存放當前遍歷的路徑

self.patharray = #存放所有符合條件的路徑

def findpath(self, root, expectnumber):

#空樹if root == none:

return self.patharray

expectnumber -= root.val

if expectnumber == 0 and not root.left and not root.right:

elif expectnumber >0:

self.findpath(root.left,expectnumber)

self.findpath(root.right,expectnumber)

self.onepath.pop()

return self.patharray

劍指Offer 二叉樹 二叉樹中和為某一值的路徑

輸入一棵二叉樹和乙個整數,列印出二叉樹中節點值的和為輸入整數的所有路徑。從樹的根節點開始往下一直到葉節點所經過的節點形成一條路徑。示例 給定如下二叉樹,以及目標和 sum 22 返回 解題思路 演算法流程 實現 definition for a binary tree node.class tree...

劍指offer 二叉樹 二叉樹中和為某一值的路徑

題目描述 輸入一顆二叉樹的根節點和乙個整數,列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。注意 在返回值的list中,陣列長度大的陣列靠前 參 coding utf 8 class treenode def init self,x ...

二叉樹中和為某一值得路徑 劍指Offer

輸入一顆二叉樹的根節點和乙個整數,列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。注意 在返回值的list中,陣列長度大的陣列靠前 首先需要遞迴遍歷整棵樹,遍歷完每一條路徑,遍歷的順序是先根節點,然後是左節點,接著是右節點 如果節點的...