美国对华为进行网络窃密/百度搜索引擎优化案例
胡扯:这个题的确见证了我的进步,连续刷了几天的dfs了,从开始的不知如何下手,到这个一次提交以打败 100% 通过,开心。
思路:
1、日常非空判断
2、遍历求和。
3、如果是叶子节点就判断当前节点的和,是否等于 所求的和
代码: 可以打开下面的注释 查看每一个节点的和
class Solution {boolean flag = false;int total = 0;void dfs (TreeNode root,int current){// System.out.println(root.val + " : " + current);if ( root.left == null && root.right == null ){ //判断是不是叶子节点if (current == total)flag = true;}if (root.left != null)dfs(root.left,current + root.left.val);if (root.right != null)dfs(root.right,current + root.right.val);}public boolean hasPathSum(TreeNode root, int sum) {if (root == null)return false;total = sum;dfs(root,root.val);return flag;}
}