面試題34:二叉樹中和為某一值的路徑
題目:輸入一棵二叉樹和一個整數,列印出二叉樹中節點值的和為輸入整數的所有路徑。從樹的根節點開始往下一直到葉節點所經過的節點形成一條路徑。
思路:先序遍歷樹,用全域性變數LinkedList型別的 path 來記錄路徑,暴力回溯,tar 不停的遞減,直到 tar 為 0 並且當前結點為葉子結點,那麼找到正確的路徑 path,將其存入結果集中。
- 時間複雜度O(n),遍歷書中每個結點的時間複雜度
- 空間複雜度O(n),需要定義一個輔助陣列 path ,來儲存路徑,結果集不算再空間複雜度裡面。
class Solution {
// 定義兩個全域性變數比較好儲存並且返回,不用通過傳參或者函式返回值來修改
public LinkedList<List<Integer>> res = new LinkedList<>();
public LinkedList<Integer> path = new LinkedList<>();
public List<List<Integer>> pathSum(TreeNode root, int sum) {
recur(root, sum);
return res;
}
// 不要寫成 static ,不然裡面定義的成員都是 static 的,全域性變數的多個測試用例就會發生錯誤
void recur(TreeNode root, int tar) {
if (root == null) {
return ;
}
path.add(root.val);
tar -= root.val;
if (tar == 0 && root.left == null && root.right == null) {
res.add(new LinkedList(path));
}
recur(root.left, tar);
recur(root.right, tar);
// 因為 path 是全域性變數,當前結點遍歷完了,一定要進行回溯,
path.removeLast();
return ;
}
}
相關文章
- 劍指 Offer 34. 二叉樹中和為某一值的路徑二叉樹
- 劍指 Offer 34. 二叉樹中和為某一值的路徑(java解題)二叉樹Java
- JZ-024-二叉樹中和為某一值的路徑二叉樹
- (python版)《劍指Offer》JZ24:二叉樹中和為某一值的路徑Python二叉樹
- 牛客題霸 [二叉樹中是否存在節點和為指定值的路徑] C++題解/答案二叉樹C++
- 面試題7:重建二叉樹面試題二叉樹
- 二叉樹路徑查詢二叉樹
- 二叉樹路徑總和二叉樹
- 面試題37:序列化二叉樹面試題二叉樹
- 【模板題】 543. 二叉樹的直徑二叉樹
- 第 34 題:如何實現二叉查詢樹?
- 刷題系類 - Python判斷二叉樹是否存在一條路徑滿足和值要求Python二叉樹
- 相同二叉樹和鏡面二叉樹問題二叉樹
- LeetCode第 543 題:二叉樹的直徑(C++)LeetCode二叉樹C++
- 資料結構和演算法面試題系列—二叉樹面試題彙總資料結構演算法面試題二叉樹
- 【LeetCode擊敗99%+】二叉樹路徑總和LeetCode二叉樹
- Leetcode 二叉樹題目集合 (看完這個面試不會做二叉樹題,辣條給你!!!!!)LeetCode二叉樹面試
- 幾道和「二叉樹」有關的演算法面試題二叉樹演算法面試題
- 一道關於二叉樹的位元組面試題的思考二叉樹面試題
- 引數為二叉樹和一個整數,求所有和為該整數的路徑二叉樹
- leetcode 每日一題 543 二叉樹的直徑 dfs方法LeetCode每日一題二叉樹
- 面試官:什麼是二叉樹面試二叉樹
- 雲端計算面試題:檔案定位路徑面試題
- 圖解精選 TOP 面試題 002 | 104. 二叉樹的最大深度圖解面試題二叉樹
- [演算法總結] 20 道題搞定 BAT 面試——二叉樹演算法BAT面試二叉樹
- 面試題36:二叉搜尋樹與雙向連結串列面試題
- 面試8:找二叉樹的下個結點面試二叉樹
- PHP面試:說說你理解的二叉樹吧PHP面試二叉樹
- 最新Mysql大廠面試必會的34問題MySql面試
- LeetCode題解(Offer26):判斷二叉樹A是否為二叉樹B的子樹(Python)LeetCode二叉樹Python
- 387,二叉樹中的最大路徑和二叉樹
- 一篇文章搞定面試中的二叉樹題目(java實現)面試二叉樹Java
- 面試題:MySQL索引為什麼用B+樹?面試題MySql索引
- Vivado使用技巧(34):路徑分割現象
- 樹7 堆中的路徑
- 程式碼隨想錄day34 || 62 不同路徑,63 不同路徑||,343整數拆分,96 不同搜尋二叉樹二叉樹
- 劍指offer 面試題 7 :二叉樹的下一個節點是什麼?面試題二叉樹
- 124. 二叉樹中的最大路徑和二叉樹