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

2021-08-15 03:06:53 字數 502 閱讀 1617

題目描述

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

/*

struct treenode

};*/

class solution

void dfs(treenode* root,int s,vector

> &ret,vector

&trace)

if(root->left)//向左遍歷

dfs(root->left,s-root->val,ret,trace);

if(root->right)

dfs(root->right,s-root->val,ret,trace);

//如果當前的路徑值不對,刪除最後乙個元素,向上遍歷

trace.pop_back();

}};

劍指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...

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

1.判斷是不是空樹 2.遞迴結束的條件是葉子節點 3.考察二叉樹前序遍歷 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class solution 返回二維列表,內部每個列...