LeetCode Path Sum

原创 2015年07月07日 11:05:28

Description:

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

For example:
Given the below binary tree and sum = 22,
              5
             / \
            4   8
           /   / \
          11  13  4
         /  \      \
        7    2      1

return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.

Solution:

还和前面一样DFS。

一直有一个需要注意的地方忘记说了:凡是类似这样,需要找到从root到leaf的path题目,dfs的终止条件应该是root.left==null && root.right==null,而不是前面root==null,二者本质都一样,只不过前者写起来麻烦了一点。

import java.util.*;

public class Solution {
	int targetSum;

	public boolean hasPathSum(TreeNode root, int sum) {
		if (root == null)
			return false;
		this.targetSum = sum;
		return dfs(root, 0);
	}

	boolean dfs(TreeNode root, int tempSum) {
		tempSum += root.val;
		if (root.left == null && root.right == null) {
			if (tempSum == targetSum)
				return true;
			return false;
		}
		boolean flag = false;
		if (root.left != null)
			flag = flag | dfs(root.left, tempSum);
		if (root.right != null)
			flag = flag | dfs(root.right, tempSum);
		return flag;
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【leetcode】path-sum-ii

huale //2014年8月23日11:16:49 //2014年8月23日11:45:25 //修改上个代码即可,在处理返回值时浪费很长时间 #include #include u...

[leetcode]24 Path Sum II

题目链接:https://leetcode.com/problems/path-sum-ii/ Runtimes:93ms 1、问题 Given a binary tree and a sum,...

[LeetCode] Binary Tree Maximum Path Sum

Given a binary tree, find the maximum pathsum. The path may start and end at any node inthe tree. ...

LeetCode Minimum Path Sum

题目: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom ri...

Leetcode64 Minimum Path Sum

Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to...

Leetcode 437. Path Sum III (Easy) (cpp)

Leetcode 437. Path Sum III (Easy) (cpp)

Leetcode 124. Binary Tree Maximum Path Sum[hard]

题目: Given a binary tree, find the maximum path sum.For this problem, a path is defined as any seque...

leetcode-124:Binary Tree Maximum Path Sum(Java)

Binary Tree Maximum Path Sum Given a binary tree, find the maximum path sum. The path may st...

leetcode解题之124. Binary Tree Maximum Path Sum Java版 (二叉树的最大路径和)

124. Binary Tree Maximum Path Sum ,leetcode解题之124. Binary Tree Maximum Path Sum Java版 (二叉树的最大路径和)

path sum iii-leetcode

题目描述(翻译):给你一个二叉树,每个节点存的是整数。再给你个数值作为和,请找出和是这个数值的路径数量。路径没有要求起点或终点必须是根节点或叶子节点,但是它必须是向下的(只能按从父节点到子节点的顺序搜...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)