标签:bsp OLE 遍历 alt return src pat nod val
①题目
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
说明: 叶子节点是指没有子节点的节点。
示例:
给定如下二叉树,以及目标和 sum = 22,
返回 true
, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2
。
②思路
用总和sum去减去每次遍历时的根值
③代码
1 class Solution { 2 public boolean hasPathSum(TreeNode root, int sum) { 3 if (root == null) 4 return false; 5 6 sum -= root.val; //减 7 if ((root.left == null) && (root.right == null)) //判断当前是否已经遍历到了叶子结点 8 return (sum == 0); 9 return hasPathSum(root.left, sum) || hasPathSum(root.right, sum); 10 } 11 }
④学到的东西
1、第7行判断是否到达叶子结点
2、第8行比较简洁,学一学,不要写成以前的if(sum==0) return true了。
[LC] 112题 路径总和(在二叉树里判断是否有哪条路径之和等于某个值)
标签:bsp OLE 遍历 alt return src pat nod val
原文地址:https://www.cnblogs.com/zf007/p/11668961.html