思路:雙重遞迴
根據題意可得,路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的(只能從父節點到子節點)。所以我們求的路徑可分為三部分:
(1)當前節點作為頭結點的滿足條件的路徑數量;
(2)當前節點的左子樹中滿足條件的路徑數量
(3)當前節點的右子樹中滿足條件的路徑數量
我們設定helper函式來遞迴當前節點作為頭結點的滿足條件的路徑數量,每經過乙個節點執行sum - root.val,並判斷sum是否為0,如果為零的話,則找到滿足條件的一條路徑。
當root為空時,返回0即可。
class
solution
return
helper
(root, sum)
+pathsum
(root.left, sum)
+ pathsum (root.right, sum);}
private
inthelper
(treenode root,
int sum)
sum = sum - root.val;
int res =0;
if(sum ==0)
return res +
helper
(root.left,sum)
+helper
(root.right,sum);}
}
愛情九十七課,降低期待
愛情裡所有的問題,都是期待的問題。也正因為期待,我們常常成為自己人生問題的製造者。惜惜牙疼的要命,她撥通了男友的手機 你快回來!我牙好疼!正在和牌友激烈桌遊中的男友,一邊出牌,一邊敷衍說 好好,玩完這一局,我就回去 惜惜頓時大怒 現在就回來!馬上,就一局,馬上就好了 我說現在!好,好 馬上 現在!嗯...
愛情九十七課,降低期待
愛情裡所有的問題,都是期待的問題。也正因為期待,我們常常成為自己人生問題的製造者。惜惜牙疼的要命,她撥通了男友的手機 你快回來!我牙好疼!正在和牌友激烈桌遊中的男友,一邊出牌,一邊敷衍說 好好,玩完這一局,我就回去 惜惜頓時大怒 現在就回來!馬上,就一局,馬上就好了 我說現在!好,好 馬上 現在!嗯...
題解三十七
給定乙個 沒有重複 數字的序列,返回其所有可能的全排列。示例 思路 回溯法問題用遞迴求解,可以聯絡上樹的遍歷,我們可以將決策路徑畫成一棵樹,回溯的過程就是這棵樹的遍歷過程。回溯問題關於已選集合和候選集合,例如下圖,在進行第一次選擇時,全部的 3 個數都可以選擇,候選集合的大小為 3。在第二次選擇時,...