设为首页 加入收藏

TOP

Leetcode dfs Path SumII
2015-07-20 17:43:54 来源: 作者: 【 】 浏览:2
Tags:Leetcode dfs Path SumII

Path Sum II

Total Accepted: 18489 Total Submissions: 68323My Submissions

Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.

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

return

[
   [5,4,11,2],
   [5,8,4,5]
]



题意:给定一棵二叉树和一个值,在二叉树中找到从根到叶子的路径使得路径中的节点的总值
等于给定值
思路:dfs
复杂度:时间O(n) 空间O(log n)

/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector
  
    > pathSum(TreeNode *root, int sum) {
    	vector
   
     cur; _pathSum(root, sum,cur); return res; } private: vector
    
      > res; void _pathSum(TreeNode *root, int sum, vector
     
       &path){ if(!root) return ; path.push_back(root->val); if(!root->left && !root->right){ if(root->val == sum) { res.push_back(path); } } _pathSum(root->left, sum - root->val, path); _pathSum(root->right, sum - root->val, path); path.pop_back(); } };
     
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Codeforces 464 C. Substitutes i.. 下一篇poj 1416 Shredding Company dfs

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)