問題: 給定一棵二叉樹和一個值,判斷是否存在從根到葉子節點的路徑和等於給定的值。
思路: 採用遞歸的方式,如果當前爲非葉子節點,遞歸處理其子節點,傳遞目標值減去當前節點的值,如果是葉子節點,比較當前值和目標值,如果爲空,返回False。
java代碼:
public boolean hasPathSum(TreeNode root,int sum){
if(root==null)
return false;
if(root.right==null&&root.left==null)
return root.val==sum;
return hasPathSum(root.left,sum-root.val)||
hasPathSum(root.right,sum-root.val);
}