树路径总和
练习:路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。
叶子节点 是指没有子节点的节点。
第一次提交:没有完全通过,记住遍历到叶子节点为止,不然会空指针异常
为什么只通过了一部分,。。。。
1 class Solution { 2 int targetSum=0; 3 public boolean hasPathSum(TreeNode root, int targetSum) { 4 if(root==null) 5 return false; 6 if(root.left==null&&root.right==null) 7 return targetSum-root.val==0; 8 boolean b1= hasPathSum(root.left, targetSum-root.val); 9 boolean b2=hasPathSum(root.right,targetSum-root.val); 10 return b1=b1||b2; 11 } 12 13 }
主要注意几个问题
1 判断叶子节点和本节点为空是不一样的,之所以实例没完全通过是因为,判断叶子节点和判断null混淆了
2本叶子节点计数不要忘记加上,不然一直出错