[LeetCode] 113. Path Sum II
来源:互联网 发布:天津seo平台 编辑:程序博客网 时间:2024/06/05 00:39
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 1return
[ [5,4,11,2], [5,8,4,5]]
class Solution {public: vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int>> paths; if (root == nullptr) return paths; if (root->left == nullptr && root->right == nullptr) { if (sum == root->val) return {{root->val}}; } auto lpath = pathSum(root->left, sum - root->val); for (auto path : lpath) { vector<int> comb; comb.push_back(root->val); comb.insert(comb.end(), path.begin(), path.end()); paths.push_back(move(comb)); } auto rpath = pathSum(root->right, sum - root->val); for (auto path : rpath) { vector<int> comb; comb.push_back(root->val); comb.insert(comb.end(), path.begin(), path.end()); paths.push_back(move(comb)); } return paths; }};
class Solution {public: vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int>> paths; vector<int> path; __pathSum(root, sum, paths, path); return paths; }private: void __pathSum(TreeNode *root, int sum, vector<vector<int>> &paths, vector<int> &path) { if (root == nullptr) return; path.push_back(root->val); if (root->left == nullptr && root->right == nullptr) { if (sum == root->val) { paths.push_back(path); path.pop_back(); return; } } __pathSum(root->left, sum - root->val, paths, path); __pathSum(root->right, sum - root->val, paths, path); path.pop_back(); }};
阅读全文
0 0
- LeetCode 113. Path Sum II
- [LeetCode]113.Path Sum II
- [Leetcode] 113. Path Sum II
- [leetcode] 113.Path Sum II
- [LeetCode]113. Path Sum II
- LeetCode: 113. Path Sum II
- leetcode 113. Path Sum II
- 113. Path Sum II LeetCode
- leetcode 113. Path Sum II
- LeetCode *** 113. Path Sum II
- Leetcode 113. Path Sum II
- LeetCode 113. Path Sum II
- LeetCode 113. Path Sum II
- LeetCode - 113. Path Sum II
- Leetcode 113. Path Sum II
- [LeetCode] 113. Path Sum II
- [leetcode] 113. Path Sum II
- [LeetCode] 113. Path Sum II
- python入门系列12―——面向对象
- java的反编译
- SpringBoot框架搭建 Hello World
- python 下划线 函数 解释
- 初次接触一个新的技术
- [LeetCode] 113. Path Sum II
- 00101 SQL基础——DML
- C++ 标准库(stl) C++ 引入头文件现状和IO流技术概述
- C语言:十八岁生日
- #420 Div.2 B. Okabe and Banana Trees——数学&暴力
- 设置Golang的GOPATH
- android 创建不同的bitmap
- JAVA面向对象
- Ubuntu使用networking服务来管理网络