思路:明顯可以使用回溯法,和112題很像,先把當前根節點擊中,加入temp,之後使用sum1減去根節點數值,然後到了葉子結點,判斷sum1是否為零,來判斷當前路徑是不是符合要求。
遇到符合要求的葉子結點,把當前的路徑加入res裡面。
假如當前根節點不是葉子結點,遞迴呼叫函式處理左右子樹
對左右子樹的處理,已經成功的把當前root節點下的所有符合要求的路徑記錄了,之後要回溯,去除此root節點(temp.remove(temp.size()-1);)
/*** definition for a binary tree node.
* public class treenode
* }*/class solution
if(root.left!=null) pathsum(root.left,sum1);//左子樹不為空,對左子樹呼叫函式,找左子樹下符合要求的路徑
if(root.right!=null) pathsum(root.right,sum1);//右子樹不為空,對右子樹呼叫函式,找右子樹下符合要求的路徑
temp.remove(temp.size()-1);//對左右子樹的處理,已經成功的把當前root節點下的所有符合要求的路徑記錄了,之後要回溯,去除此root節點
return res;}}
113 路徑總和 II
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,4 8 11 13 4 7 2 5 1 返回 5,4,11,2 5,8,4,5 definition for a binary tr...
113 路徑總和 II
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,definition for a binary tree node.class treenode object def init s...
113 路徑總和 II
113.路徑總和 ii 給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。vector pathsum treenode root,int sum void dfs treenode root,int sum,vector ans,vector one ans on...