112. 路徑總和/257. 二叉樹的所有路徑
阿新 • • 發佈:2021-10-08
給你二叉樹的根節點root 和一個表示目標和的整數targetSum ,判斷該樹中是否存在 根節點到葉子節點 的路徑,這條路徑上所有節點值相加等於目標和targetSum 。
葉子節點 是指沒有子節點的節點。
示例 1:
輸入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
輸出:true
public boolean hasPathSum(TreeNode root, int targetSum) { if(root==null){ return false; } if(root.left==null && root.right==null){ return targetSum-root.val==0; } return hasPathSum(root.left,targetSum-root.val) || hasPathSum(root.right,targetSum-root.val); }
257. 二叉樹的所有路徑
給你一個二叉樹的根節點 root ,按 任意順序 ,返回所有從根節點到葉子節點的路徑。
葉子節點 是指沒有子節點的節點。
示例 1:
輸入:root = [1,2,3,null,5]
輸出:["1->2->5","1->3"]
示例 2:
輸入:root = [1]
輸出:["1"]
public List<String> binaryTreePaths(TreeNode root) { List<String> res=new ArrayList<>(); process(root,res,""); return res; } private void process(TreeNode root,List<String> res,String path){ if(root==null){ return; } path+=root.val; if(root.left==null && root.right==null){ res.add(path); return; } process(root.left,res,path+"->"); process(root.right,res,path+"->"); }