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-面试算法经典-Java实现】【113-Path Sum II(路径和)】

【113-Path Sum II(路径和II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a binary tree and a sum, find al...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月12日 06:23
  • 2481

【LeetCode-面试算法经典-Java实现】【112-Path Sum(路径和)】

【112-Path Sum(路径和)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a binary tree and a sum, determine if...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月11日 07:40
  • 2787

LeetCode -- Triangle 路径求最小和( 动态规划问题)

LeetCode Problem-- Triangle 路径求最小和 动态规划问题
  • mason_mow
  • mason_mow
  • 2014年05月25日 18:10
  • 1725

【LeetCode】113. Path Sum II 基于Java和C++的解法及分析

113. Path Sum II  Total Accepted: 80509 Total Submissions: 284188 Difficulty: Medium Given...
  • Jin_Kwok
  • Jin_Kwok
  • 2016年05月09日 22:25
  • 831

leetCode 112.Path Sum (路径和) 解题思路和方法

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all...
  • xygy8860
  • xygy8860
  • 2015年08月05日 12:55
  • 630

【LeetCode-面试算法经典-Java实现】【112-Path Sum(路径和)】

【112-Path Sum(路径和)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a binary tree and a sum, determine if...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月11日 07:40
  • 2787

leetcode 113. Path Sum II

Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su...
  • u014568921
  • u014568921
  • 2016年03月11日 14:14
  • 285

LeetCode:Binary Tree Maximum Path Sum

Binary Tree Maximum Path Sum 题目描述:
  • bbppbb
  • bbppbb
  • 2014年07月30日 12:33
  • 531

LeetCode 112, 123. Path Sum i, ii

1. 题目描述 Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that ...
  • zhyh1435589631
  • zhyh1435589631
  • 2016年04月05日 11:54
  • 351

Binary Tree Maximum Path Sum--LeetCode

题目: Given a binary tree, find the maximum path sum. The path may start and end at any node in the...
  • yusiguyuan
  • yusiguyuan
  • 2015年04月09日 11:44
  • 678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode Path Sum
举报原因:
原因补充:

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