博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode OJ - Path Sum II
阅读量:5158 次
发布时间:2019-06-13

本文共 1815 字,大约阅读时间需要 6 分钟。

题目:

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。

代码:

1 /** 2  * Definition for binary tree 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 11 class Solution {12 public:13     int vec_sum(vector
&cur_ans) {14 int sum = 0;15 for (int i = 0; i < cur_ans.size(); i++) {16 sum += cur_ans[i];17 }18 return sum;19 }20 void search_dfs(TreeNode *root, vector
&cur_ans, int sum, vector
> &ans) {21 if (root->left == NULL && root->right == NULL) {22 cur_ans.push_back(root->val);23 if (vec_sum(cur_ans) == sum) ans.push_back(cur_ans);24 cur_ans.pop_back();25 }26 else {27 cur_ans.push_back(root->val);28 if (root->left != NULL) search_dfs(root->left, cur_ans, sum, ans);29 if (root->right != NULL) search_dfs(root->right, cur_ans, sum, ans);30 cur_ans.pop_back();31 }32 return;33 }34 vector
> pathSum(TreeNode *root, int sum) {35 vector
> ans;36 if (root == NULL) return ans;37 38 vector
cur_ans;39 40 search_dfs(root, cur_ans, sum, ans);41 return ans;42 }43 };

 

转载于:https://www.cnblogs.com/dongguangqing/p/3728037.html

你可能感兴趣的文章
mac os 相关命令
查看>>
Ant工具(一)
查看>>
destoon 自定义session丢失
查看>>
phpstudy命令行中数据表插入中文显示不了的问题
查看>>
【数学、dp】bigcoin 2013广东省赛E题
查看>>
JAVA基础——异常详解
查看>>
cocos2d-js 网络请求之GET/POST
查看>>
ActionBar本部分适用述评
查看>>
POJ 1236 Network of Schools(强连通 Tarjan+缩点)
查看>>
八大排序算法总结
查看>>
javascript 操作 css Rule
查看>>
欧拉路知识点整理
查看>>
UVA 10480 Sabotage
查看>>
2C. Fibonacci Again
查看>>
BNUOJ 7178 病毒侵袭持续中
查看>>
Flex 布局教程:语法篇
查看>>
从零开始徒手撸一个vue的toast弹窗组件
查看>>
7Z命令行
查看>>
如何将网站升级为HTTPS协议(整理)
查看>>
amazeui学习笔记--css(布局相关2)--等分网格 AVG Grid
查看>>