LeetCode Path Sum II (DFS)
2015-11-18 23:37
274 查看
题意:
给一棵二叉树,每个叶子到根的路径之和为sum的,将所有可能的路径装进vector返回。
思路:
节点的值可能为负的。这样子就必须到了叶节点才能判断,而不能中途进行剪枝。
AC代码
给一棵二叉树,每个叶子到根的路径之和为sum的,将所有可能的路径装进vector返回。
思路:
节点的值可能为负的。这样子就必须到了叶节点才能判断,而不能中途进行剪枝。
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int> > pathSum(TreeNode* root, int sum) { if(root==NULL) return ans; DFS(root,0,sum,tmp); return ans; } void DFS(TreeNode* t,int n,const int& sum,vector<int>& num) { num.push_back(t->val); n+=t->val; if(t->left==NULL&&t->right==NULL) { if(n==sum) ans.push_back(num); } else { if(t->left) DFS(t->left,n,sum,num); if(t->right) DFS(t->right,n,sum,num); } num.pop_back(); } private: vector<vector<int>> ans; vector<int> tmp; };
AC代码
相关文章推荐
- 【笔试题】C语言:模拟实现strcmp
- 开发总结
- 广电总局下令封杀电视盒子
- 广电总局下令封杀电视盒子
- [Linux]时间相关命令
- 记录一个PullToRefreshListView的bug 不显示
- 南大软院大神养成计划--day03
- 【GZOJ】1314——异或最大值
- ClustLib——A C++ Data Clustering Framework(一):数据集相关类设计
- 考研:考还是不考?
- python之自定义爬虫脚本
- 冲刺第七阶段
- JAVA基础课总结九
- activity的生命周期
- 【c】质数判断
- Java课程设计笔记-Android 4.4系统实现沉浸式状态栏的正确姿势
- Java Socket通信实现带联机功能的俄罗斯方块
- 马毅与来自高维度的恩赐
- C#常用 API函数大全
- 基于Smack3.0.4+ Openfire3.10.2开发之Android 客户端之二