LeetCode-113-Path Sum II
Posted 无名路人甲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 sum.
Note: A leaf is a node with no children.
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] ]
解题思路:回溯法。注意确认边界条件。
vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int>> results; vector<int> temp; backtracking(root, results, temp, sum); return results; } void backtracking(TreeNode* root, vector<vector<int>>& results, vector<int>& temp, int sum){ if(root==nullptr) return; temp.push_back(root->val); if(sum ==root->val && root->left==nullptr && root->right==nullptr){ results.push_back(temp); } backtracking(root->left, results, temp, sum-root->val); backtracking(root->right, results, temp, sum-root->val); temp.pop_back(); }
以上是关于LeetCode-113-Path Sum II的主要内容,如果未能解决你的问题,请参考以下文章