牛客剑指offer刷题笔记
来源:互联网 发布:学历 知乎 编辑:程序博客网 时间:2024/05/19 14:53
题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: vector<vector<int> >a; vector<int> b; vector<vector<int> > FindPath(TreeNode* root,int expectNumber) { if(root==NULL) return a; b.push_back(root->val); if(root->left==NULL && root->right==NULL && (root->val-expectNumber)==0) a.push_back(b); FindPath(root->left,expectNumber-root->val); FindPath(root->right,expectNumber-root->val); if(b.size()!=0) b.pop_back(); return a; }};
这道题想着不用递归,发现很麻烦,思路大体上是:再定义一个结构体,如下:
struct node{ struct TreeNode *root; int flag;}
然后借助一个栈,每次访问一个节点就入栈,并把flag置1;这个标志是为了防止重复访问一个节点。看了别人写的递归,发现好简单。
阅读全文
0 0
- 牛客剑指offer刷题笔记
- 牛客剑指offer题学习笔记
- 剑指offer刷题笔记
- 【刷题笔记/剑指Offer】41-50
- 【刷题笔记/剑指Offer】51-61
- 剑指offer刷题笔记(1)
- 剑指offer刷题笔记(2)
- 剑指offer刷题笔记(3)
- 剑指offer刷题笔记(4)
- 《剑指offer》刷题笔记系列综述
- 【刷题笔记/剑指Offer】Part 1 (1-10)
- 【刷题笔记/剑指Offer】Part 2 (11-20)
- 【刷题笔记/剑指Offer】Part 3 (21-30)
- 【刷题笔记/剑指Offer】31—40
- 《剑指offer》刷题笔记(数组):构建乘积数组
- 《剑指offer》刷题笔记(字符串):替换空格
- 《剑指offer》刷题笔记(树):重建二叉树
- 《剑指offer》刷题笔记(字符串):正则表达式匹配
- Android调用系统日历插入日程
- 多线程上部
- 有用的CSS代码片段
- 538. Convert BST to Greater Tree
- nginx反向代理配置及优化
- 牛客剑指offer刷题笔记
- Android Telephony分析(五)--- TelephonyRegistry 详解
- javascript异步和单线程
- java后台开发Hibernate例子--登录查询
- hpu暑假训练 E: YK的书架【思维】
- 二分搜索--控制精度--hdu2199 Can you solve this equation
- 老司机手把手教你自己编译jdk
- WIN32 控件显示RGB 图像 / Mat 图像
- ubuntu rebar3 安装