博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断二叉树是否有从根节点到叶子节点的节点值之和等于sum的路径
阅读量:4042 次
发布时间:2019-05-24

本文共 1129 字,大约阅读时间需要 3 分钟。

DESC:

题目描述

给定一个二叉树和一个值 sum,判断是否有从根节点到叶子节点的节点值之和等于 sum的路径,

例如:
给出如下的二叉树, sum=22,
返回true,因为存在一条路径 5→4→11→2的节点值之和为 22

示例1

输入

{1,2},0

返回值

false

示例2

输入

{1,2},3

返回值

true

 

CODE:

JAVA:

import java.util.*;/* * public class TreeNode { *   int val = 0; *   TreeNode left = null; *   TreeNode right = null; * } */public class Solution {    /**     *      * @param root TreeNode类      * @param sum int整型      * @return bool布尔型     */        public boolean hasPathSum (TreeNode root, int sum) {        if (root == null) {            return false;        }        // write code here        return dfs(root, sum, 0);    }    public boolean dfs(TreeNode node, int target, int sumNow) {        if (node == null) {            return false;        }        sumNow += node.val;        if (node.left == null && node.right == null) {            if (sumNow == target) {                return true;            } else {                return false;            }        } else {            //左右子树有一个满足即可            return dfs(node.left, target, sumNow) || dfs(node.right, target, sumNow);        }    }}

 

 

NOTES:

  1. dfs,注意怎么返回传递,非叶子节点返回左右子树的结果或集,即左右子树有一方满足即为true

转载地址:http://sfldi.baihongyu.com/

你可能感兴趣的文章
如此调用
查看>>
计算机的发展史
查看>>
带WiringPi库的交叉编译如何处理一
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Spring事务的七种传播行为
查看>>
ES写入找不到主节点问题排查
查看>>
Java8 HashMap集合解析
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
Android计算器实现源码分析
查看>>
Android系统构架
查看>>
Android 跨应用程序访问窗口知识点总结
查看>>
各种排序算法的分析及java实现
查看>>
SSH框架总结(框架分析+环境搭建+实例源码下载)
查看>>
js弹窗插件
查看>>
自定义 select 下拉框 多选插件
查看>>
js判断数组内是否有重复值
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>
arm linux 生成火焰图
查看>>