[LC] 112题 路径总和(在二叉树里判断是否有哪条路径之和等于某个值)
Posted zf007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LC] 112题 路径总和(在二叉树里判断是否有哪条路径之和等于某个值)相关的知识,希望对你有一定的参考价值。
①题目
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
说明: 叶子节点是指没有子节点的节点。
示例:
给定如下二叉树,以及目标和 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题 路径总和(在二叉树里判断是否有哪条路径之和等于某个值)的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—112. 路径总和( 二叉树)—day33