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

2021-10-21 08:34:02 字數 935 閱讀 2024

總結

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

示例:給定如下二叉樹,以及目標和 sum = 22,

返回:[

[5,4,11,2],

[5,8,4,5]

]利用遞迴的方法,遞迴每一條路徑,記錄路徑節點值,並在最後乙個葉子節點判斷是否滿足路徑:和為輸入值sum。滿足條件的路徑則加入預先建立的大列表。需要注意的是,遞迴函式結束之前要刪除路徑的最後乙個節點。

特別注意:遞迴函式的sum值採取減去當前節點的val值的方式,當sum==0時表明滿足sum和的路徑找到了。

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

public

void

recur

(treenode root,

int sum)

sum = sum - root.val;

list.

add(root.val);if

(sum ==

0&& root.left == null && root.right ==null)

recur

(root.left, sum)

;recur

(root.right, sum)

; list.

remove

(list.

size()

-1);

}}

暫時沒有總結,待續。。。

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

題目描述 輸入一顆二叉樹和乙個整數,列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。struct treenode class solution void dfs treenode root,int s,vector ret,vect...

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

輸入一棵二叉樹和乙個整數,列印出二叉樹中節點值的和為輸入整數的所有路徑。從樹的根節點開始往下一直到葉節點所經過的節點形成一條路徑。例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 5 1返回 5,4,11,2 5,8,4,5 思路很明確,深度優先搜尋sum node ...

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

20.5.3 最佳寫法 注意不要在新增了一條路徑後直接返回,任何乙個節點返回時都要從路徑中pop出去 class solution void dfs treenode root,int sum if root left dfs root left,sum if root right dfs root...