码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Path Sum

时间:2015-07-19 20:03:00      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

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.

 

从Root结点->遍历到叶子结点 找出sum跟遍历的总和相同 返回真 or 假

 

Leetcode

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/

bool hasPathSum(TreeNode *root, int sum)
{
return PathSum(root,sum,0);
}

bool PathSum(TreeNode *root,int sum,int val)
{
if(root==NULL) return false;//如果给出的根节点为空则返回假   当递归到 树的第三层 4的时候 会触发FALSE
val+=root->val;//不为空 则将当前递归 节点的val 值进行+=操作
if(root-left== NULL&&root->right==NULL)//递归到叶子结点 
{ 
if(sum==val) return true;
else false; 
}
return PathSum(root->left,sum,val)||PathSum(root->right,sum,val);//如果当前递归到非叶子结点 则继续递归调用 结点的 左 右 两个孩子结点
}

 

广度 深度 搜索 的变化 还是多样的 要多多了解这些思想 跟方法

LeetCode Path Sum

标签:

原文地址:http://www.cnblogs.com/anfly/p/4659223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!