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

Leetcode dfs Path Sum

时间:2014-08-31 21:33:41      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   ar   for   2014   

Path Sum

 Total Accepted: 20393 Total Submissions: 66674My Submissions

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.



题意:给定一棵二叉树和一个值,判断在二叉树中是否存在一条从根到叶子的路径使得路径中的节点的总值
等于给定值
思路:dfs
复杂度:时间O(n) --》因为最差情况下要遍历每个节点,空间O(logn) -->因为树的高度是 log n,最多压栈存储 log n 个前面的递归调用的信息


struct TreeNode {
 int val;
 TreeNode *left;
 TreeNode *right;
 TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};


bool hasPathSum(TreeNode *root, int sum){
	if(!root) return false;
	if(root->val == sum && (!root->left  && !root->right)) return true;
	return hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val);
}


Leetcode dfs Path Sum

标签:style   blog   http   color   os   io   ar   for   2014   

原文地址:http://blog.csdn.net/zhengsenlie/article/details/38962745

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