【每日一题】【树的dfs递归,返回多次,注意都遍历完后才最终返回】2022年1月6日-112. 路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。
叶子节点 是指没有子节点的节点。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/path-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


答案:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { boolean flag = false; public boolean hasPathSum(TreeNode root, int targetSum) { if(root == null) { return false; } dfs(root, targetSum); return flag; } public void dfs(TreeNode root, int num) { if(root == null) { return; } if(root.left == null && root.right == null) //注意,当值为root的值时,说明加上root就等于目标值 if(num == root.val) { flag = true; } } dfs(root.left, num - root.val); dfs(root.right, num - root.val); } }
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/15772838.html

浙公网安备 33010602011771号